openerp-community team mailing list archive
-
openerp-community team
-
Mailing list archive
-
Message #05510
[Merge] lp:~openerp-community/hotel-management-system/porting-to-7-branch into lp:hotel-management-system/7.0
Lorenzo Battistini - Agile BG has proposed merging lp:~openerp-community/hotel-management-system/porting-to-7-branch into lp:hotel-management-system/7.0.
Requested reviews:
Hotel Editors (hotel-core-editors)
For more details, see:
https://code.launchpad.net/~openerp-community/hotel-management-system/porting-to-7-branch/+merge/216465
--
https://code.launchpad.net/~openerp-community/hotel-management-system/porting-to-7-branch/+merge/216465
Your team OpenERP Community is subscribed to branch lp:~openerp-community/hotel-management-system/porting-to-7-branch.
=== added directory 'board_frontdesk/Doc'
=== added file 'board_frontdesk/Doc/ChangeLog.txt'
--- board_frontdesk/Doc/ChangeLog.txt 1970-01-01 00:00:00 +0000
+++ board_frontdesk/Doc/ChangeLog.txt 2014-04-18 16:01:07 +0000
@@ -0,0 +1,8 @@
+============================================================================================================================
+ Version Change Log (board_frontdesk)
+============================================================================================================================
+0.03 on 2014-01-07 by Krunal Soni
+ * Added Accurate licensing terms and Copyright(C) on top inside license info in each py file.
+
+0.02 on 2013-11-13 by Sudhir Arya
+ * Standardized the module as per v7 standards.
=== modified file 'board_frontdesk/__init__.py'
--- board_frontdesk/__init__.py 2012-05-18 07:39:13 +0000
+++ board_frontdesk/__init__.py 2014-04-18 16:01:07 +0000
@@ -1,20 +1,23 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
\ No newline at end of file
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
+#
+##############################################################################
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'board_frontdesk/__openerp__.py'
--- board_frontdesk/__openerp__.py 2012-05-22 14:06:57 +0000
+++ board_frontdesk/__openerp__.py 2014-04-18 16:01:07 +0000
@@ -1,42 +1,43 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
{
"name":"Board for Hotel FrontDesk",
- "version":"1.0",
- "author":"Tiny",
+ "version" : "0.03",
+ "author":"Serpent Consulting Services Pvt. Ltd.", "OpenERP SA"
"category":"Board/Hotel FrontDesk",
+ "website": ["http://www.serpentcs.com", "http://www.openerp.com"],
"depends":[
"board",
- "report_hotel_reservation",
-
-
+ "hotel_reservation",
],
- "demo_xml":[],
- "update_xml":["board_frontdesk_view.xml"],
"description": """
This module implements a dashboard for hotel FrontDesk that includes:
* Calendar view of Today's Check-In and Check-Out
* Calendar view of Weekly Check-In and Check-Out
* Calendar view of Monthly Check-In and Check-Out
""",
- "active":False,
- "installable":True,
-}
\ No newline at end of file
+ "data":["board_frontdesk_view.xml"],
+ "auto_install": False,
+ "installable": True
+}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'board_frontdesk/board_frontdesk_view.xml'
--- board_frontdesk/board_frontdesk_view.xml 2012-05-22 14:06:57 +0000
+++ board_frontdesk/board_frontdesk_view.xml 2014-04-18 16:01:07 +0000
@@ -1,51 +1,42 @@
<?xml version="1.0"?>
<openerp>
- <data>
-
-<!-- <record model="board.note.type" id="note_frontdesk_type">-->
-<!-- <field name="name">FrontDesk</field>-->
-<!-- </record>-->
-
- <record model="ir.actions.act_window" id="action_view_frontdesk_cal">
- <field name="name">FrontDesk</field>
- <field name="res_model">hotel.reservation</field>
- <field name="view_type">form</field>
- <field name="view_mode">calendar,form</field>
- <field name="view_id" ref="hotel_reservation.hotel_calendar_view" />
- </record>
-
- <record model="ir.ui.view" id="board_frontdesk_form">
- <field name="name">board.frontdesk.form</field>
- <field name="model">board.board</field>
- <field name="type">form</field>
- <field name="arch" type="xml">
- <form string="FrontDesk board">
- <hpaned>
- <child1>
- <action
- string="Reservation"
- name="%(action_view_frontdesk_cal)d"
- />
- </child1>
- </hpaned>
- </form>
- </field>
- </record>
-
- <record model="ir.actions.act_window" id="open_board_frontdesk">
- <field name="name">FrontDesk Dashboard</field>
- <field name="res_model">board.board</field>
- <field name="view_type">form</field>
- <field name="usage">menu</field>
- <field name="view_id" ref="board_frontdesk_form"/>
- </record>
-
- <menuitem
- name="Hotel FrontDesk Board"
- action="open_board_frontdesk"
- sequence="1"
- id="menu_board_frontdesk" icon="terp-graph"
- parent="base.menu_dashboard_admin"/>
-
- </data>
-</openerp>
+ <data>
+
+ <record model="ir.actions.act_window" id="action_view_frontdesk_cal">
+ <field name="name">FrontDesk</field>
+ <field name="res_model">hotel.reservation</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form,calendar</field>
+ <field name="view_id" ref="hotel_reservation.hotel_calendar_view"/>
+ </record>
+
+ <record model="ir.ui.view" id="board_frontdesk_form">
+ <field name="name">board.frontdesk.form</field>
+ <field name="model">board.board</field>
+ <field name="arch" type="xml">
+ <form string="FrontDesk board" version="7.0">
+ <board style="2-1">
+ <column>
+ <action string="Reservation" name="%(action_view_frontdesk_cal)d"/>
+ </column>
+ </board>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.actions.act_window" id="open_board_frontdesk">
+ <field name="name">FrontDesk Dashboard</field>
+ <field name="res_model">board.board</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="board_frontdesk_form"/>
+ </record>
+
+ <menuitem id="menu_board_frontdesk"
+ name="Hotel FrontDesk Board"
+ action="open_board_frontdesk"
+ sequence="46"
+ parent="base.menu_reporting_dashboard"/>
+
+ </data>
+</openerp>
\ No newline at end of file
=== modified file 'board_frontdesk/i18n/es.po' (properties changed: -x to +x)
=== modified file 'board_frontdesk/i18n/fi.po' (properties changed: -x to +x)
=== modified file 'board_frontdesk/i18n/sv.po' (properties changed: -x to +x)
=== added directory 'hotel/Doc'
=== added file 'hotel/Doc/ChangeLog.txt'
--- hotel/Doc/ChangeLog.txt 1970-01-01 00:00:00 +0000
+++ hotel/Doc/ChangeLog.txt 2014-04-18 16:01:07 +0000
@@ -0,0 +1,23 @@
+============================================================================================================================
+ Version Change Log (hotel)
+============================================================================================================================
+0.07 on 2014-04-04 by Dhwani
+ * Standardized the module as per v7 standards.
+
+0.06 on 2014-01-11 by Krunal Soni
+ * Checked code quality and improved report format.
+
+0.05 on 2014-01-07 by Krunal Soni
+ * Added Accurate licensing terms and Copyright(C) on top inside license info in each py file.
+
+0.04 on 2013-11-19 by Sudhir Arya
+ * Fixed onchanage errors, bugs in generate folio and enhanced the code.
+
+0.03 on 2013-11-18 by Sudhir Arya
+ * Added access rights to some objects.
+
+0.02 on 2013-11-13 by Sudhir Arya
+ * Standardized the module as per v7 standards.
+
+1.01 --> Oct 1,2013 : Anil Kesariya
+ * Added Access control for manager user Improved labels and Fixed the error.
\ No newline at end of file
=== modified file 'hotel/__init__.py'
--- hotel/__init__.py 2012-05-22 14:06:57 +0000
+++ hotel/__init__.py 2014-04-18 16:01:07 +0000
@@ -1,25 +1,27 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import hotel
-import wizard
-import report
+
+from . import hotel
+from . import wizard
+from . import report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== modified file 'hotel/__openerp__.py'
--- hotel/__openerp__.py 2012-11-24 23:33:44 +0000
+++ hotel/__openerp__.py 2014-04-18 16:01:07 +0000
@@ -1,57 +1,58 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
{
- "name" : "Hotel Management Base",
- "version" : "1.0",
- "author" : "Tiny",
+ "name" : "Hotel Management",
+ "version" : "0.07",
+ "author": ["Serpent Consulting Services Pvt. Ltd.", "OpenERP SA" ],
"category" : "Generic Modules/Hotel Management",
"description": """
-Module for Hotel/Resort/Rooms/Property management. You can manage:
-
-* Configure Property
-* Hotel Configuration
-* Check In, Check out
-* Manage Folio
-* Payment
-
-Different reports are also provided, mainly for hotel statistics.
+ Module for Hotel/Resort/Property management. You can manage:
+ * Configure Property
+ * Hotel Configuration
+ * Check In, Check out
+ * Manage Folio
+ * Payment
+
+ Different reports are also provided, mainly for hotel statistics.
""",
- "depends" : ["sale"],
- "init_xml" : [],
- "demo_xml" : [
- ],
- "update_xml" : [
- "hotel_view.xml",
- "hotel_data.xml",
- "hotel_folio_workflow.xml",
- "report/hotel_report.xml",
- "wizard/hotel_wizard.xml",
- "security/hotel_security.xml",
- "security/ir.model.access.csv",
-
- ],
- "active": False,
- "installable": True,
- 'application': True,
+ "website": ["http://www.serpentcs.com", "http://www.openerp.com"],
+ "depends" : ["sale_stock"],
+ "demo" : [
+ ],
+ "data": [
+ "security/hotel_security.xml",
+ "security/ir.model.access.csv",
+ "hotel_sequence.xml",
+ "hotel_folio_workflow.xml",
+# "hotel_scheduler.xml",
+ "report/hotel_report.xml",
+ "hotel_view.xml",
+ "hotel_data.xml",
+ "wizard/hotel_wizard.xml",
+ ],
+ 'css': ["static/src/css/room_kanban.css"],
+ "auto_install": False,
+ "installable": True
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel/data/hotel-color.png' (properties changed: -x to +x)
=== modified file 'hotel/data/hotel-grey.png' (properties changed: -x to +x)
=== modified file 'hotel/hotel.py'
--- hotel/hotel.py 2012-05-25 11:25:10 +0000
+++ hotel/hotel.py 2014-04-18 16:01:07 +0000
@@ -1,172 +1,164 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-from osv import fields, osv
+
+from openerp.osv import fields, osv
import time
-import netsvc
-#import ir
-from mx import DateTime
+from openerp import netsvc
import datetime
-from tools import config
+from openerp.tools.translate import _
+from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
-class hotel_floor(osv.osv):
+class hotel_floor(osv.Model):
_name = "hotel.floor"
_description = "Floor"
_columns = {
'name': fields.char('Floor Name', size=64, required=True, select=True),
- 'sequence' : fields.integer('Sequence', size=64),
- }
-hotel_floor()
+ 'sequence': fields.integer('Sequence', size=64),
+ }
-class product_category(osv.osv):
+class product_category(osv.Model):
_inherit = "product.category"
_columns = {
- 'isroomtype':fields.boolean('Is Room Type'),
- 'isamenitype':fields.boolean('Is amenities Type'),
- 'isservicetype':fields.boolean('Is Service Type'),
+ 'isroomtype': fields.boolean('Is Room Type'),
+ 'isamenitype': fields.boolean('Is amenities Type'),
+ 'isservicetype': fields.boolean('Is Service Type'),
}
-product_category()
-class hotel_room_type(osv.osv):
- _name = "hotel.room_type"
- _inherits = {'product.category':'cat_id'}
+class hotel_room_type(osv.Model):
+ _name = "hotel.room.type"
+ _inherits = {'product.category': 'cat_id'}
_description = "Room Type"
- _columns = {
- 'cat_id':fields.many2one('product.category', 'category', required=True, select=True, ondelete='cascade'),
-
+ _columns = {
+ 'cat_id': fields.many2one('product.category', 'category', required=True, select=True, ondelete='cascade'),
}
_defaults = {
- 'isroomtype': lambda * a: 1,
- }
-hotel_room_type()
-
-
-class product_product(osv.osv):
+ 'isroomtype': 1,
+ }
+
+class product_product(osv.Model):
_inherit = "product.product"
_columns = {
- 'isroom':fields.boolean('Is Room'),
- 'iscategid':fields.boolean('Is categ id'),
- 'isservice':fields.boolean('Is Service id'),
-
+ 'isroom': fields.boolean('Is Room'),
+ 'iscategid': fields.boolean('Is categ id'),
+ 'isservice': fields.boolean('Is Service id'),
}
-product_product()
-class hotel_room_amenities_type(osv.osv):
- _name = 'hotel.room_amenities_type'
+class hotel_room_amenities_type(osv.Model):
+ _name = 'hotel.room.amenities.type'
_description = 'amenities Type'
_inherits = {'product.category':'cat_id'}
_columns = {
- 'cat_id':fields.many2one('product.category', 'category', required=True, ondelete='cascade'),
- }
+ 'cat_id': fields.many2one('product.category', 'category', required=True, ondelete='cascade'),
+ }
_defaults = {
- 'isamenitype': lambda * a: 1,
-
+ 'isamenitype': 1,
}
-hotel_room_amenities_type()
-
-class hotel_room_amenities(osv.osv):
- _name = 'hotel.room_amenities'
+class hotel_room_amenities(osv.Model):
+ _name = 'hotel.room.amenities'
_description = 'Room amenities'
_inherits = {'product.product':'room_categ_id'}
_columns = {
- 'room_categ_id':fields.many2one('product.product', 'Product Category', required=True, ondelete='cascade'),
- 'rcateg_id':fields.many2one('hotel.room_amenities_type', 'Amenity Catagory'),
- 'amenity_rate':fields.integer('Amenity Rate'),
- }
+ 'room_categ_id': fields.many2one('product.product', 'Product Category', required=True, ondelete='cascade'),
+ 'rcateg_id': fields.many2one('hotel.room.amenities.type', 'Amenity Catagory'),
+ }
_defaults = {
- 'iscategid': lambda * a: 1,
- }
-
-hotel_room_amenities()
+ 'iscategid': 1,
+ }
-class hotel_room(osv.osv):
-
+class hotel_room(osv.Model):
_name = 'hotel.room'
- _inherits = {'product.product':'product_id'}
+ _inherits = {'product.product': 'product_id'}
_description = 'Hotel Room'
_columns = {
-
'product_id': fields.many2one('product.product', 'Product_id', required=True, ondelete='cascade'),
- 'floor_id':fields.many2one('hotel.floor', 'Floor No'),
- 'max_adult':fields.integer('Max Adult'),
- 'max_child':fields.integer('Max Child'),
- 'avail_status':fields.selection([('assigned', 'Assigned'), (' unassigned', 'Unassigned')], 'Room Status'),
- 'room_amenities':fields.many2many('hotel.room_amenities', 'temp_tab', 'room_amenities', 'rcateg_id', 'Room Amenities'),
- }
+ 'floor_id': fields.many2one('hotel.floor', 'Floor No', help='At which floor the room is located.'),
+ 'max_adult': fields.integer('Max Adult'),
+ 'max_child': fields.integer('Max Child'),
+ 'room_amenities': fields.many2many('hotel.room.amenities', 'temp_tab', 'room_amenities', 'rcateg_id', 'Room Amenities', help='List of room amenities. '),
+ 'status': fields.selection([('available', 'Available'), ('occupied', 'Occupied')], 'Status'),
+# 'room_reservation_line_ids': fields.one2many('hotel.room.reservation.line','room_id','Room Reservation Line'),
+ 'room_rent_ids': fields.one2many('room.rent', 'rent_id', 'Room Rent'),
+ }
_defaults = {
- 'isroom': lambda * a: 1,
- 'rental': lambda * a: 1,
- }
-
-hotel_room()
-
-class hotel_folio(osv.osv):
-
- def _incoterm_get(self, cr, uid, context={}):
- return self.pool.get('sale.order')._incoterm_get(cr, uid, context={})
-
- def copy(self, cr, uid, id, default=None, context={}):
- return self.pool.get('sale.order').copy(cr, uid, id, default=None, context={})
-
+ 'isroom': 1,
+ 'rental': 1,
+ 'status': 'available',
+ }
+
+ def set_room_status_occupied(self, cr, uid, ids, context=None):
+ return self.write(cr, uid, ids, {'status': 'occupied'}, context=context)
+
+ def set_room_status_available(self, cr, uid, ids, context=None):
+ return self.write(cr, uid, ids, {'status': 'available'}, context=context)
+
+class room_rent(osv.Model):
+ _name = 'room.rent'
+ _columns = {
+ 'rent_id': fields.many2one('hotel.room', 'Room Rent'),
+ 'price': fields.float('Price (Per night)'),
+ 'mon': fields.boolean('Monday'),
+ 'tue': fields.boolean('Tuesday'),
+ 'wed': fields.boolean('Wednesday'),
+ 'thu': fields.boolean('Thursday'),
+ 'fri': fields.boolean('Friday'),
+ 'sat': fields.boolean('Saturday'),
+ 'sun': fields.boolean('Sunday'),
+ }
+
+class hotel_folio(osv.Model):
+
+ def copy(self, cr, uid, id, default=None, context=None):
+ return self.pool.get('sale.order').copy(cr, uid, id, default=None, context=None)
+
def _invoiced(self, cursor, user, ids, name, arg, context=None):
- return self.pool.get('sale.order')._invoiced(cursor, user, ids, name, arg, context=None)
+ return self.pool.get('sale.order')._invoiced(cursor, user, ids, name, arg, context=None)
def _invoiced_search(self, cursor, user, obj, name, args):
- return self.pool.get('sale.order')._invoiced_search(cursor, user, obj, name, args)
-
- def _amount_untaxed(self, cr, uid, ids, field_name, arg, context):
- return self.pool.get('sale.order')._amount_untaxed(cr, uid, ids, field_name, arg, context)
-
- def _amount_tax(self, cr, uid, ids, field_name, arg, context):
- return self.pool.get('sale.order')._amount_tax(cr, uid, ids, field_name, arg, context)
-
- def _amount_total(self, cr, uid, ids, field_name, arg, context):
- return self.pool.get('sale.order')._amount_total(cr, uid, ids, field_name, arg, context)
-
+ return self.pool.get('sale.order')._invoiced_search(cursor, user, obj, name, args)
+
_name = 'hotel.folio'
-
_description = 'hotel folio new'
-
- _inherits = {'sale.order':'order_id'}
-
+ _inherits = {'sale.order': 'order_id'}
_rec_name = 'order_id'
-
+ _order = 'id desc'
_columns = {
- 'order_id':fields.many2one('sale.order', 'order_id', required=True, ondelete='cascade'),
- 'checkin_date': fields.datetime('Check In', required=True, readonly=True, states={'draft':[('readonly', False)]}),
- 'checkout_date': fields.datetime('Check Out', required=True, readonly=True, states={'draft':[('readonly', False)]}),
- 'room_lines': fields.one2many('hotel_folio.line', 'folio_id'),
- 'service_lines': fields.one2many('hotel_service.line', 'folio_id'),
- 'hotel_policy':fields.selection([('prepaid', 'On Booking'), ('manual', 'On Check In'), ('picking', 'On Checkout')], 'Hotel Policy', required=True),
- 'duration':fields.float('Duration'),
+ 'name': fields.char('Folio Number', size=24, readonly=True),
+ 'order_id': fields.many2one('sale.order', 'Order', required=True, ondelete='cascade'),
+ 'checkin_date': fields.datetime('Check In', required=True, readonly=True, states={'draft':[('readonly', False)]}),
+ 'checkout_date': fields.datetime('Check Out', required=True, readonly=True, states={'draft':[('readonly', False)]}),
+ 'room_lines': fields.one2many('hotel.folio.line', 'folio_id', readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, help="Hotel room reservation detail."),
+ 'service_lines': fields.one2many('hotel.service.line', 'folio_id', readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, help="Hotel services detail provide to customer and it will include in main Invoice."),
+ 'hotel_policy': fields.selection([('prepaid', 'On Booking'), ('manual', 'On Check In'), ('picking', 'On Checkout')], 'Hotel Policy', help="Hotel policy for payment that either the guest has to payment at booking time or check-in check-out time."),
+ 'duration': fields.float('Duration in Days', readonly=True, help="Number of days which will automatically count from the check-in and check-out date. "),
}
-
_defaults = {
- 'hotel_policy':'manual'
- }
-
+ 'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'hotel.folio'),
+ 'hotel_policy': 'manual'
+ }
_sql_constraints = [
- ('check_in_out', 'CHECK (checkin_date<=checkout_date)', 'Check in Date Should be less than the Check Out Date!'),
- ]
-
+ ('check_in_out', 'CHECK (checkin_date<=checkout_date)', 'Check in Date Should be less than the Check Out Date!'),
+ ]
+
def _check_room_vacant(self, cr, uid, ids, context=None):
folio = self.browse(cr, uid, ids[0], context=context)
rooms = []
@@ -175,13 +167,22 @@
return False
rooms.append(room.product_id)
return True
-
+
_constraints = [
- (_check_room_vacant, 'You can not allocate the same room twice!', ['room_lines'])
+ (_check_room_vacant, 'You cannot allocate the same room twice!', ['room_lines'])
]
-
+
def onchange_dates(self, cr, uid, ids, checkin_date=False, checkout_date=False, duration=False):
+ # This mathod gives the duration between check in checkout if customer will leave only for some hour it would be considers as
+ # a whole day. If customer will checkin checkout for more or equal hours , which configured in company as additional hours than
+ # it would be consider as full day
value = {}
+ company_obj = self.pool.get('res.company')
+ configured_addition_hours = 0
+ company_ids = company_obj.search(cr, uid, [])
+ if company_ids:
+ company = company_obj.browse(cr, uid, company_ids[0])
+ configured_addition_hours = company.additional_hours
if not duration:
duration = 0
if checkin_date and checkout_date:
@@ -189,6 +190,10 @@
chkout_dt = datetime.datetime.strptime(checkout_date, '%Y-%m-%d %H:%M:%S')
dur = chkout_dt - chkin_dt
duration = dur.days
+ if configured_addition_hours > 0:
+ additional_hours = abs((dur.seconds / 60) / 60)
+ if additional_hours >= configured_addition_hours:
+ duration += 1
value.update({'value':{'duration':duration}})
else:
if checkin_date:
@@ -197,76 +202,74 @@
checkout_date = datetime.datetime.strftime(chkout_dt, '%Y-%m-%d %H:%M:%S')
value.update({'value':{'checkout_date':checkout_date}})
return value
-
+
def create(self, cr, uid, vals, context=None, check=True):
tmp_room_lines = vals.get('room_lines', [])
- tmp_service_lines = vals.get('service_lines', [])
vals['order_policy'] = vals.get('hotel_policy', 'manual')
- if not vals.has_key("folio_id"):
- vals.update({'room_lines':[], 'service_lines':[]})
- folio_id = super(hotel_folio, self).create(cr, uid, vals, context)
- for line in tmp_room_lines:
- line[2].update({'folio_id':folio_id})
- for line in tmp_service_lines:
- line[2].update({'folio_id':folio_id})
- vals.update({'room_lines':tmp_room_lines, 'service_lines':tmp_service_lines})
- super(hotel_folio, self).write(cr, uid, [folio_id], vals, context)
+ if not 'service_lines' and 'folio_id' in vals:
+# if not 'folio_id' in vals:
+ vals.update({'room_lines':[]})
+ folio_id = super(hotel_folio, self).create(cr, uid, vals, context=context)
+ for line in (tmp_room_lines):
+ line[2].update({'folio_id':folio_id})
+ vals.update({'room_lines':tmp_room_lines})
+ super(hotel_folio, self).write(cr, uid, [folio_id], vals, context=context)
else:
- folio_id = super(hotel_folio, self).create(cr, uid, vals, context)
+ folio_id = super(hotel_folio, self).create(cr, uid, vals, context=context)
return folio_id
-
-
+
def onchange_shop_id(self, cr, uid, ids, shop_id):
- return self.pool.get('sale.order').onchange_shop_id(cr, uid, ids, shop_id)
-
- def onchange_partner_id(self, cr, uid, ids, part):
- return self.pool.get('sale.order').onchange_partner_id(cr, uid, ids, part)
-
- def button_dummy(self, cr, uid, ids, context={}):
- return self.pool.get('sale.order').button_dummy(cr, uid, ids, context={})
-
+ order_ids = [folio.order_id.id for folio in self.browse(cr, uid, ids)]
+ return self.pool.get('sale.order').onchange_shop_id(cr, uid, order_ids, shop_id)
+
+ def onchange_partner_id(self, cr, uid, ids, part, context=None):
+ order_ids = [folio.order_id.id for folio in self.browse(cr, uid, ids, context=context)]
+ return self.pool.get('sale.order').onchange_partner_id(cr, uid, order_ids, part, context=None)
+
+ def button_dummy(self, cr, uid, ids, context=None):
+ order_ids = [folio.order_id.id for folio in self.browse(cr, uid, ids)]
+ return self.pool.get('sale.order').button_dummy(cr, uid, order_ids, context={})
+
def action_invoice_create(self, cr, uid, ids, grouped=False, states=['confirmed', 'done']):
- i = self.pool.get('sale.order').action_invoice_create(cr, uid, ids, grouped=False, states=['confirmed', 'done'])
- for line in self.browse(cr, uid, ids, context={}):
- self.write(cr, uid, [line.id], {'invoiced':True})
- if grouped:
- self.write(cr, uid, [line.id], {'state' : 'progress'})
- else:
- self.write(cr, uid, [line.id], {'state' : 'progress'})
- return i
+ order_ids = [folio.order_id.id for folio in self.browse(cr, uid, ids)]
+ invoice_id = self.pool.get('sale.order').action_invoice_create(cr, uid, order_ids, grouped=False, states=['confirmed', 'done'])
+ for line in self.browse(cr, uid, ids):
+ values = {
+ 'invoiced': True,
+ 'state': 'progress' if grouped else 'progress',
+ }
+ line.write(values)
+ return invoice_id
-
- def action_invoice_cancel(self, cr, uid, ids, context={}):
- res = self.pool.get('sale.order').action_invoice_cancel(cr, uid, ids, context={})
- for sale in self.browse(cr, uid, ids):
+ def action_invoice_cancel(self, cr, uid, ids, context=None):
+ order_ids = [folio.order_id.id for folio in self.browse(cr, uid, ids)]
+ res = self.pool.get('sale.order').action_invoice_cancel(cr, uid, order_ids, context=context)
+ for sale in self.browse(cr, uid, ids, context=context):
for line in sale.order_line:
- self.pool.get('sale.order.line').write(cr, uid, [line.id], {'invoiced': invoiced})
- self.write(cr, uid, ids, {'state':'invoice_except', 'invoice_id':False})
- return res
- def action_cancel(self, cr, uid, ids, context={}):
- c = self.pool.get('sale.order').action_cancel(cr, uid, ids, context={})
- ok = True
- for sale in self.browse(cr, uid, ids):
- for r in self.read(cr, uid, ids, ['picking_ids']):
- for pick in r['picking_ids']:
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'stock.picking', pick, 'button_cancel', cr)
- for r in self.read(cr, uid, ids, ['invoice_ids']):
- for inv in r['invoice_ids']:
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.invoice', inv, 'invoice_cancel', cr)
-
- self.write(cr, uid, ids, {'state':'cancel'})
- return c
-
+ line.write({'invoiced': 'invoiced'})
+ self.write(cr, uid, ids, {'state':'invoice_except'}, context=context)
+ return res
+
+ def action_cancel(self, cr, uid, ids, context=None):
+ order_ids = [folio.order_id.id for folio in self.browse(cr, uid, ids, context=context)]
+ rv = self.pool.get('sale.order').action_cancel(cr, uid, order_ids, context=context)
+ wf_service = netsvc.LocalService("workflow")
+ for sale in self.browse(cr, uid, ids, context=context):
+ for pick in sale.picking_ids:
+ wf_service.trg_validate(uid, 'stock.picking', pick.id, 'button_cancel', cr)
+ for invoice in sale.invoice_ids:
+ wf_service.trg_validate(uid, 'account.invoice', invoice.id, 'invoice_cancel', cr)
+ sale.write({'state':'cancel'})
+ return rv
+
def action_wait(self, cr, uid, ids, *args):
- res = self.pool.get('sale.order').action_wait(cr, uid, ids, *args)
- for o in self.browse(cr, uid, ids):
- if (o.order_policy == 'manual') and (not o.invoice_ids):
- self.write(cr, uid, [o.id], {'state': 'manual'})
- else:
- self.write(cr, uid, [o.id], {'state': 'progress'})
+ order_ids = [folio.order_id.id for folio in self.browse(cr, uid, ids)]
+ res = self.pool.get('sale.order').action_wait(cr, uid, order_ids, *args)
+ for order in self.browse(cr, uid, ids):
+ state = ('progress', 'manual')[int(order.order_policy == 'manual' and not order.invoice_ids)]
+ order.write({'state': state})
return res
+
def test_state(self, cr, uid, ids, mode, *args):
write_done_ids = []
write_cancel_ids = []
@@ -275,221 +278,248 @@
self.pool.get('sale.order.line').write(cr, uid, write_done_ids, {'state': 'done'})
if write_cancel_ids:
self.pool.get('sale.order.line').write(cr, uid, write_cancel_ids, {'state': 'cancel'})
- return res
+ return res
+
def procurement_lines_get(self, cr, uid, ids, *args):
- res = self.pool.get('sale.order').procurement_lines_get(cr, uid, ids, *args)
- return res
- def action_ship_create(self, cr, uid, ids, *args):
- res = self.pool.get('sale.order').action_ship_create(cr, uid, ids, *args)
+ order_ids = [folio.order_id.id for folio in self.browse(cr, uid, ids)]
+ return self.pool.get('sale.order').procurement_lines_get(cr, uid, order_ids, *args)
+
+ def action_ship_create(self, cr, uid, ids, context=None):
+ order_ids = [folio.order_id.id for folio in self.browse(cr, uid, ids)]
+ return self.pool.get('sale.order').action_ship_create(cr, uid, order_ids, context=None)
+
+ def action_ship_end(self, cr, uid, ids, context=None):
+ order_ids = [folio.order_id.id for folio in self.browse(cr, uid, ids)]
+ res = self.pool.get('sale.order').action_ship_end(cr, uid, order_ids, context=context)
+ for order in self.browse(cr, uid, ids, context=context):
+ order.write ({'shipped':True})
return res
- def action_ship_end(self, cr, uid, ids, context={}):
- res = self.pool.get('sale.order').action_ship_end(cr, uid, ids, context={})
- for order in self.browse(cr, uid, ids):
- val = {'shipped':True}
- self.write(cr, uid, [order.id], val)
- return res
- def _log_event(self, cr, uid, ids, factor=0.7, name='Open Order'):
- return self.pool.get('sale.order')._log_event(cr, uid, ids, factor=0.7, name='Open Order')
+
def has_stockable_products(self, cr, uid, ids, *args):
- return self.pool.get('sale.order').has_stockable_products(cr, uid, ids, *args)
+ order_ids = [folio.order_id.id for folio in self.browse(cr, uid, ids)]
+ return self.pool.get('sale.order').has_stockable_products(cr, uid, order_ids, *args)
+
def action_cancel_draft(self, cr, uid, ids, *args):
- d = self.pool.get('sale.order').action_cancel_draft(cr, uid, ids, *args)
- self.write(cr, uid, ids, {'state':'draft', 'invoice_ids':[], 'shipped':0})
- self.pool.get('sale.order.line').write(cr, uid, ids, {'invoiced':False, 'state':'draft', 'invoice_lines':[(6, 0, [])]})
- return d
-
-hotel_folio()
-
-class hotel_folio_line(osv.osv):
-
- def copy(self, cr, uid, id, default=None, context={}):
- return self.pool.get('sale.order.line').copy(cr, uid, id, default=None, context={})
- def _amount_line_net(self, cr, uid, ids, field_name, arg, context):
- return self.pool.get('sale.order.line')._amount_line_net(cr, uid, ids, field_name, arg, context)
+ if not len(ids):
+ return False
+ cr.execute('select id from sale_order_line where order_id IN %s and state=%s', (tuple(ids), 'cancel'))
+ line_ids = map(lambda x: x[0], cr.fetchall())
+ self.write(cr, uid, ids, {'state': 'draft', 'invoice_ids': [], 'shipped': 0})
+ self.pool.get('sale.order.line').write(cr, uid, line_ids, {'invoiced': False, 'state': 'draft', 'invoice_lines': [(6, 0, [])]})
+ wf_service = netsvc.LocalService("workflow")
+ for inv_id in ids:
+ # Deleting the existing instance of workflow for SO
+ wf_service.trg_delete(uid, 'sale.order', inv_id, cr)
+ wf_service.trg_create(uid, 'sale.order', inv_id, cr)
+ for (id, name) in self.name_get(cr, uid, ids):
+ message = _("The sales order '%s' has been set in draft state.") % (name,)
+ self.log(cr, uid, id, message)
+ return True
+
+class hotel_folio_line(osv.Model):
+
+ def copy(self, cr, uid, id, default=None, context=None):
+ return self.pool.get('sale.order.line').copy(cr, uid, id, default=None, context=context)
+
def _amount_line(self, cr, uid, ids, field_name, arg, context):
- return self.pool.get('sale.order.line')._amount_line(cr, uid, ids, field_name, arg, context)
+ return self.pool.get('sale.order.line')._amount_line(cr, uid, ids, field_name, arg, context)
+
def _number_packages(self, cr, uid, ids, field_name, arg, context):
- return self.pool.get('sale.order.line')._number_packages(cr, uid, ids, field_name, arg, context)
- def _get_1st_packaging(self, cr, uid, context={}):
- return self.pool.get('sale.order.line')._get_1st_packaging(cr, uid, context={})
- def _get_checkin_date(self, cr, uid, context={}):
+ return self.pool.get('sale.order.line')._number_packages(cr, uid, ids, field_name, arg, context)
+
+ def _get_checkin_date(self, cr, uid, context=None):
if 'checkin_date' in context:
return context['checkin_date']
return time.strftime('%Y-%m-%d %H:%M:%S')
- def _get_checkout_date(self, cr, uid, context={}):
+
+ def _get_checkout_date(self, cr, uid, context=None):
if 'checkin_date' in context:
return context['checkout_date']
return time.strftime('%Y-%m-%d %H:%M:%S')
-
- _name = 'hotel_folio.line'
- _description = 'hotel folio1 room line'
+
+ _name = 'hotel.folio.line'
+ _description = 'hotel folio room line'
_inherits = {'sale.order.line':'order_line_id'}
_columns = {
- 'order_line_id':fields.many2one('sale.order.line', 'order_line_id', required=True, ondelete='cascade'),
- 'folio_id':fields.many2one('hotel.folio', 'folio_id', ondelete='cascade'),
- 'checkin_date': fields.datetime('Check In', required=True),
- 'checkout_date': fields.datetime('Check Out', required=True),
+ 'order_line_id': fields.many2one('sale.order.line', 'Order Line', required=True, ondelete='cascade'),
+ 'folio_id': fields.many2one('hotel.folio', 'Folio', ondelete='cascade'),
+ 'checkin_date': fields.datetime('Check In', required=True),
+ 'checkout_date': fields.datetime('Check Out', required=True),
}
_defaults = {
- 'checkin_date':_get_checkin_date,
- 'checkout_date':_get_checkout_date,
-
+ 'checkin_date':_get_checkin_date,
+ 'checkout_date':_get_checkout_date,
}
-
+
def create(self, cr, uid, vals, context=None, check=True):
- if not context:
- context = {}
- if vals.has_key("folio_id"):
- folio = self.pool.get("hotel.folio").browse(cr, uid, [vals['folio_id']])[0]
+ if 'folio_id' in vals:
+ folio = self.pool.get("hotel.folio").browse(cr, uid, vals['folio_id'], context=context)
vals.update({'order_id':folio.order_id.id})
- roomline = super(osv.osv, self).create(cr, uid, vals, context)
- return roomline
-
+ return super(osv.Model, self).create(cr, uid, vals, context)
+
+ def unlink(self, cr, uid, ids, context=None):
+ sale_line_obj = self.pool.get('sale.order.line')
+ for line in self.browse(cr, uid, ids, context=context):
+ if line.order_line_id:
+ sale_line_obj.unlink(cr, uid, [line.order_line_id.id], context=context)
+ return super(hotel_folio_line, self).unlink(cr, uid, ids, context=None)
+
def uos_change(self, cr, uid, ids, product_uos, product_uos_qty=0, product_id=None):
- return self.pool.get('sale.order.line').uos_change(cr, uid, ids, product_uos, product_uos_qty=0, product_id=None)
-
+ line_ids = [folio.order_line_id.id for folio in self.browse(cr, uid, ids)]
+ return self.pool.get('sale.order.line').uos_change(cr, uid, line_ids, product_uos, product_uos_qty=0, product_id=None)
+
def product_id_change(self, cr, uid, ids, pricelist, product, qty=0,
uom=False, qty_uos=0, uos=False, name='', partner_id=False,
lang=False, update_tax=True, date_order=False):
- return self.pool.get('sale.order.line').product_id_change(cr, uid, ids, pricelist, product, qty=0,
+ line_ids = [folio.order_line_id.id for folio in self.browse(cr, uid, ids)]
+ return self.pool.get('sale.order.line').product_id_change(cr, uid, line_ids, pricelist, product, qty=0,
uom=False, qty_uos=0, uos=False, name='', partner_id=partner_id,
lang=False, update_tax=True, date_order=False)
-
+
def product_uom_change(self, cursor, user, ids, pricelist, product, qty=0,
uom=False, qty_uos=0, uos=False, name='', partner_id=False,
lang=False, update_tax=True, date_order=False):
- return self.pool.get('sale.order.line').product_uom_change(cursor, user, ids, pricelist, product, qty=0,
+ return self.product_id_change(cursor, user, ids, pricelist, product, qty=0,
uom=False, qty_uos=0, uos=False, name='', partner_id=partner_id,
lang=False, update_tax=True, date_order=False)
-
- def on_change_checkout(self, cr, uid, ids, checkin_date=time.strftime('%Y-%m-%d %H:%M:%S'), checkout_date=time.strftime('%Y-%m-%d %H:%M:%S'), context=None):
+
+ def on_change_checkout(self, cr, uid, ids, checkin_date=None, checkout_date=None, context=None):
+ if not checkin_date:
+ checkin_date = time.strftime('%Y-%m-%d %H:%M:%S')
+ if not checkout_date:
+ checkout_date = time.strftime('%Y-%m-%d %H:%M:%S')
qty = 1
if checkout_date < checkin_date:
- raise osv.except_osv ('Error !', 'Checkout must be greater or equal checkin date')
+ raise osv.except_osv(_('Error !'), _('Checkout must be greater or equal checkin date'))
if checkin_date:
diffDate = datetime.datetime(*time.strptime(checkout_date, '%Y-%m-%d %H:%M:%S')[:5]) - datetime.datetime(*time.strptime(checkin_date, '%Y-%m-%d %H:%M:%S')[:5])
qty = diffDate.days
if qty == 0:
qty = 1
return {'value':{'product_uom_qty':qty}}
-
- def button_confirm(self, cr, uid, ids, context={}):
-
- return self.pool.get('sale.order.line').button_confirm(cr, uid, ids, context={})
- def button_done(self, cr, uid, ids, context={}):
- res = self.pool.get('sale.order.line').button_done(cr, uid, ids, context={})
+
+ def button_confirm(self, cr, uid, ids, context=None):
+ line_ids = [folio.order_line_id.id for folio in self.browse(cr, uid, ids)]
+ return self.pool.get('sale.order.line').button_confirm(cr, uid, line_ids, context=context)
+
+ def button_done(self, cr, uid, ids, context=None):
+ line_ids = [folio.order_line_id.id for folio in self.browse(cr, uid, ids)]
+ res = self.pool.get('sale.order.line').button_done(cr, uid, line_ids, context=context)
wf_service = netsvc.LocalService("workflow")
res = self.write(cr, uid, ids, {'state':'done'})
for line in self.browse(cr, uid, ids, context):
- wf_service.trg_write(uid, 'sale.order', line.order_id.id, cr)
+ wf_service.trg_write(uid, 'sale.order', line.order_line_id.order_id.id, cr)
return res
-
- def uos_change(self, cr, uid, ids, product_uos, product_uos_qty=0, product_id=None):
- return self.pool.get('sale.order.line').uos_change(cr, uid, ids, product_uos, product_uos_qty=0, product_id=None)
- def copy(self, cr, uid, id, default=None, context={}):
- return self.pool.get('sale.order.line').copy(cr, uid, id, default=None, context={})
-
-
-
-hotel_folio_line()
-
-class hotel_service_line(osv.osv):
-
- def copy(self, cr, uid, id, default=None, context={}):
- return self.pool.get('sale.order.line').copy(cr, uid, id, default=None, context={})
- def _amount_line_net(self, cr, uid, ids, field_name, arg, context):
- return self.pool.get('sale.order.line')._amount_line_net(cr, uid, ids, field_name, arg, context)
+ def copy_data(self, cr, uid, id, default=None, context=None):
+ line_id = self.browse(cr, uid, id).order_line_id.id
+ return self.pool.get('sale.order.line').copy_data(cr, uid, line_id, default=None, context=context)
+
+class hotel_service_line(osv.Model):
+
+ def copy(self, cr, uid, id, default=None, context=None):
+ line_id = self.browse(cr, uid, id).service_line_id.id
+ return self.pool.get('sale.order.line').copy(cr, uid, line_id, default=None, context=context)
+
def _amount_line(self, cr, uid, ids, field_name, arg, context):
- return self.pool.get('sale.order.line')._amount_line(cr, uid, ids, field_name, arg, context)
+ line_ids = [folio.service_line_id.id for folio in self.browse(cr, uid, ids)]
+ return self.pool.get('sale.order.line')._amount_line(cr, uid, line_ids, field_name, arg, context)
+
def _number_packages(self, cr, uid, ids, field_name, arg, context):
- return self.pool.get('sale.order.line')._number_packages(cr, uid, ids, field_name, arg, context)
- def _get_1st_packaging(self, cr, uid, context={}):
- return self.pool.get('sale.order.line')._get_1st_packaging(cr, uid, context={})
-
-
- _name = 'hotel_service.line'
+ line_ids = [folio.service_line_id.id for folio in self.browse(cr, uid, ids)]
+ return self.pool.get('sale.order.line')._number_packages(cr, uid, line_ids, field_name, arg, context)
+
+ _name = 'hotel.service.line'
_description = 'hotel Service line'
_inherits = {'sale.order.line':'service_line_id'}
_columns = {
- 'service_line_id':fields.many2one('sale.order.line', 'service_line_id', required=True, ondelete='cascade'),
- 'folio_id':fields.many2one('hotel.folio', 'folio_id', ondelete='cascade'),
-
+ 'service_line_id': fields.many2one('sale.order.line', 'Service Line', required=True, ondelete='cascade'),
+ 'folio_id': fields.many2one('hotel.folio', 'Folio', ondelete='cascade'),
}
def create(self, cr, uid, vals, context=None, check=True):
- if not context:
- context = {}
- if vals.has_key("folio_id"):
- folio = self.pool.get("hotel.folio").browse(cr, uid, [vals['folio_id']])[0]
+ if 'folio_id' in vals:
+ folio = self.pool.get("hotel.folio").browse(cr, uid, vals['folio_id'], context=context)
vals.update({'order_id':folio.order_id.id})
- roomline = super(osv.osv, self).create(cr, uid, vals, context)
- return roomline
-
- def uos_change(self, cr, uid, ids, product_uos, product_uos_qty=0, product_id=None):
- return self.pool.get('sale.order.line').uos_change(cr, uid, ids, product_uos, product_uos_qty=0, product_id=None)
-
+ return super(osv.Model, self).create(cr, uid, vals, context=context)
+
+ def unlink(self, cr, uid, ids, context=None):
+ sale_line_obj = self.pool.get('sale.order.line')
+ for line in self.browse(cr, uid, ids, context=context):
+ if line.service_line_id:
+ sale_line_obj.unlink(cr, uid, [line.service_line_id.id], context=context)
+ return super(hotel_service_line, self).unlink(cr, uid, ids, context=None)
+
def product_id_change(self, cr, uid, ids, pricelist, product, qty=0,
uom=False, qty_uos=0, uos=False, name='', partner_id=False,
lang=False, update_tax=True, date_order=False):
- return self.pool.get('sale.order.line').product_id_change(cr, uid, ids, pricelist, product, qty=0,
+ line_ids = [folio.service_line_id.id for folio in self.browse(cr, uid, ids)]
+ return self.pool.get('sale.order.line').product_id_change(cr, uid, line_ids, pricelist, product, qty=0,
uom=False, qty_uos=0, uos=False, name='', partner_id=partner_id,
lang=False, update_tax=True, date_order=False)
+
def product_uom_change(self, cursor, user, ids, pricelist, product, qty=0,
uom=False, qty_uos=0, uos=False, name='', partner_id=False,
lang=False, update_tax=True, date_order=False):
- return self.pool.get('sale.order.line').product_uom_change(cursor, user, ids, pricelist, product, qty=0,
+ return self.product_id_change(cursor, user, ids, pricelist, product, qty=0,
uom=False, qty_uos=0, uos=False, name='', partner_id=partner_id,
lang=False, update_tax=True, date_order=False)
- def on_change_checkout(self, cr, uid, ids, checkin_date=time.strftime('%Y-%m-%d %H:%M:%S'), checkout_date=time.strftime('%Y-%m-%d %H:%M:%S'), context=None):
+
+ def on_change_checkout(self, cr, uid, ids, checkin_date=None, checkout_date=None, context=None):
+ if not checkin_date:
+ checkin_date = time.strftime('%Y-%m-%d %H:%M:%S')
+ if not checkout_date:
+ checkout_date = time.strftime('%Y-%m-%d %H:%M:%S')
qty = 1
if checkout_date < checkin_date:
- raise osv.except_osv ('Error !', 'Checkout must be greater or equal checkin date')
+ raise osv.except_osv(_('Error !'), _('Checkout must be greater or equal checkin date'))
if checkin_date:
diffDate = datetime.datetime(*time.strptime(checkout_date, '%Y-%m-%d %H:%M:%S')[:5]) - datetime.datetime(*time.strptime(checkin_date, '%Y-%m-%d %H:%M:%S')[:5])
qty = diffDate.days
return {'value':{'product_uom_qty':qty}}
-
- def button_confirm(self, cr, uid, ids, context={}):
-
- return self.pool.get('sale.order.line').button_confirm(cr, uid, ids, context={})
- def button_done(self, cr, uid, ids, context={}):
- return self.pool.get('sale.order.line').button_done(cr, uid, ids, context={})
+
+ def button_confirm(self, cr, uid, ids, context=None):
+ line_ids = [folio.service_line_id.id for folio in self.browse(cr, uid, ids)]
+ return self.pool.get('sale.order.line').button_confirm(cr, uid, line_ids, context=context)
+
+ def button_done(self, cr, uid, ids, context=None):
+ line_ids = [folio.service_line_id.id for folio in self.browse(cr, uid, ids)]
+ return self.pool.get('sale.order.line').button_done(cr, uid, line_ids, context=context)
+
def uos_change(self, cr, uid, ids, product_uos, product_uos_qty=0, product_id=None):
- return self.pool.get('sale.order.line').uos_change(cr, uid, ids, product_uos, product_uos_qty=0, product_id=None)
- def copy(self, cr, uid, id, default=None, context={}):
- return self.pool.get('sale.order.line').copy(cr, uid, id, default=None, context={})
-
-
-
-hotel_service_line()
-
-class hotel_service_type(osv.osv):
- _name = "hotel.service_type"
+ line_ids = [folio.service_line_id.id for folio in self.browse(cr, uid, ids)]
+ return self.pool.get('sale.order.line').uos_change(cr, uid, line_ids, product_uos, product_uos_qty=0, product_id=None)
+
+ def copy_data(self, cr, uid, id, default=None, context=None):
+ line_id = self.browse(cr, uid, id).service_line_id.id
+ return self.pool.get('sale.order.line').copy_data(cr, uid, line_id, default=default, context=context)
+
+class hotel_service_type(osv.Model):
+ _name = "hotel.service.type"
_inherits = {'product.category':'ser_id'}
_description = "Service Type"
_columns = {
- 'ser_id':fields.many2one('product.category', 'category', required=True, select=True, ondelete='cascade'),
-
+ 'ser_id': fields.many2one('product.category', 'Category', required=True, select=True, ondelete='cascade'),
}
_defaults = {
- 'isservicetype': lambda * a: 1,
- }
-hotel_service_type()
+ 'isservicetype': 1,
+ }
-class hotel_services(osv.osv):
-
+class hotel_services(osv.Model):
_name = 'hotel.services'
_description = 'Hotel Services and its charges'
_inherits = {'product.product':'service_id'}
_columns = {
- 'service_id': fields.many2one('product.product', 'Service_id', required=True, ondelete='cascade'),
-
- }
+ 'service_id': fields.many2one('product.product', 'Service id', required=True, ondelete='cascade'),
+ }
_defaults = {
- 'isservice': lambda * a: 1,
- }
-hotel_services()
+ 'isservice': 1,
+ }
+class res_company(osv.Model):
+ _inherit = 'res.company'
+ _columns = {
+ 'additional_hours': fields.integer('Additional Hours', help="Provide the min hours value for check in, checkout days, whatever the hours will be provided here based on that extra days will be calculated."),
+ }
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== modified file 'hotel/hotel_data.xml'
--- hotel/hotel_data.xml 2012-05-22 14:06:57 +0000
+++ hotel/hotel_data.xml 2014-04-18 16:01:07 +0000
@@ -1,9 +1,8 @@
-<?xml version="1.0" ?>
+<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<!-- Floor -->
-
<record id="hotel_floor_ground0" model="hotel.floor">
<field eval=""Ground"" name="name"/>
</record>
@@ -21,74 +20,60 @@
</record>
<!-- hotel_room_amenities_type -->
-
-
- <record id="hotel_room_amenities_type_0" model="hotel.room_amenities_type">
+ <record id="hotel_room_amenities_type_0" model="hotel.room.amenities.type">
<field name="parent_id" ref="null" />
<field name="name">All Aminities</field>
-
</record>
- <record id="hotel_room_amenities_type_1" model="hotel.room_amenities_type">
+ <record id="hotel_room_amenities_type_1" model="hotel.room.amenities.type">
<field name="parent_id" model="product.category" search="[('isamenitype','=',True)]" ref="hotel_room_amenities_type_0"/>
<field name="name">Beds</field>
</record>
- <record id="hotel_room_amenities_type_2" model="hotel.room_amenities_type">
+ <record id="hotel_room_amenities_type_2" model="hotel.room.amenities.type">
<field name="parent_id" model="product.category" search="[('isamenitype','=',True)]" ref="hotel_room_amenities_type_0"/>
<field name="name">Tables</field>
</record>
- <record id="hotel_room_amenities_type_3" model="hotel.room_amenities_type">
+ <record id="hotel_room_amenities_type_3" model="hotel.room.amenities.type">
<field name="parent_id" model="product.category" search="[('isamenitype','=',True)]" ref="hotel_room_amenities_type_1"/>
<field name="name">Single Bed</field>
</record>
- <record id="hotel_room_amenities_type_4" model="hotel.room_amenities_type">
+ <record id="hotel_room_amenities_type_4" model="hotel.room.amenities.type">
<field name="parent_id" model="product.category" search="[('isamenitype','=',True)]" ref="hotel_room_amenities_type_1"/>
<field name="name">Double Bed</field>
</record>
<!-- hotel_room_type -->
-
- <record id="hotel_room_type_0" model="hotel.room_type">
- <field name="parent_id" ref="null" />
+ <record id="hotel_room_type_0" model="hotel.room.type">
+ <field name="parent_id" ref="null" />
<field name="name">All Rooms</field>
</record>
- <record id="hotel_room_type_1" model="hotel.room_type">
+ <record id="hotel_room_type_1" model="hotel.room.type">
<field name="parent_id" model="product.category" search="[('isroomtype','=',True)]" ref="hotel_room_type_0"/>
<field name="name">Single</field>
</record>
- <record id="hotel_room_type_2" model="hotel.room_type">
+ <record id="hotel_room_type_2" model="hotel.room.type">
<field name="parent_id" model="product.category" search="[('isroomtype','=',True)]" ref="hotel_room_type_0"/>
<field name="name">Double</field>
</record>
-
-
- <record id="hotel_room_type_3" model="hotel.room_type">
+ <record id="hotel_room_type_3" model="hotel.room.type">
<field name="parent_id" model="product.category" search="[('isroomtype','=',True)]" ref="hotel_room_type_0"/>
<field name="name">No Room</field>
</record>
-
- <record id="hotel_room_type_3" model="hotel.room_type">
- <field name="parent_id" model="product.category" search="[('isroomtype','=',True)]" ref="hotel_room_type_0"/>
- <field name="name">No Room</field>
- </record>
- <!-- hotel_service_type -->
-
- <record id="hotel_service_type_0" model="hotel.service_type">
+
+ <!-- hotel_service_type -->
+ <record id="hotel_service_type_0" model="hotel.service.type">
<field name="parent_id" ref="null" />
<field name="name">All Services</field>
</record>
- <record id="hotel_service_type_1" model="hotel.service_type">
+ <record id="hotel_service_type_1" model="hotel.service.type">
<field name="parent_id" model="product.category" search="[('isservicetype','=',True)]" ref="hotel_service_type_0"/>
<field name="name">Fixed</field>
</record>
- <record id="hotel_service_type_2" model="hotel.service_type">
+ <record id="hotel_service_type_2" model="hotel.service.type">
<field name="parent_id" model="product.category" search="[('isservicetype','=',True)]" ref="hotel_service_type_0"/>
<field name="name">Variable</field>
</record>
-
-
<!-- hotel_room -->
-
<record id="hotel_room_6" model="hotel.room">
<field name="name">No Room Available</field>
<field name="categ_id" model="product.category" search="[('isroomtype','=',True),('name','=','No Room')]" ref="hotel_room_type_3"/>
@@ -99,7 +84,6 @@
<field name="categ_id" model="product.category" search="[('isroomtype','=',True),('name','=','Single')]" ref="hotel_room_type_1"/>
<field name="list_price">100.00</field>
</record>
-
<record id="hotel_room_1" model="hotel.room">
<field name="name">Single-102</field>
<field name="categ_id" model="product.category" search="[('isroomtype','=',True),('name','=','Single')]" ref="hotel_room_type_1"/>
@@ -132,8 +116,6 @@
</record>
<!-- hotel_services -->
-
-
<record id="hotel_service_6" model="hotel.services">
<field name="name">Internet</field>
<field name="categ_id" model="product.category" search="[('isservicetype','=',True),('name','=','Fixed')]" ref="hotel_service_type_1"/>
@@ -150,6 +132,5 @@
<field name="list_price">150.00</field>
</record>
-
</data>
</openerp>
\ No newline at end of file
=== modified file 'hotel/hotel_folio_workflow.xml'
--- hotel/hotel_folio_workflow.xml 2012-05-22 14:06:57 +0000
+++ hotel/hotel_folio_workflow.xml 2014-04-18 16:01:07 +0000
@@ -1,22 +1,20 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="workflow" id="wkf_hotel">
- <field name="name">hotel.folio.basic</field>
- <field name="osv">hotel.folio</field>
- <field name="on_create">True</field>
+ <field name="name">hotel.folio.basic</field>
+ <field name="osv">hotel.folio</field>
+ <field name="on_create">True</field>
</record>
#----------------------------------------------
# Activity
#----------------------------------------------
-
<record model="workflow.activity" id="act_draft">
<field name="wkf_id" ref="wkf_hotel"/>
<field name="flow_start">True</field>
<field name="name">draft</field>
</record>
-
<record model="workflow.activity" id="act_router">
<field name="wkf_id" ref="wkf_hotel"/>
<field name="name">router</field>
@@ -32,7 +30,6 @@
<field name="wkf_id" ref="wkf_hotel"/>
<field name="name">wait_ship</field>
</record>
-
<record model="workflow.activity" id="act_done">
<field name="wkf_id" ref="wkf_hotel"/>
<field name="name">done</field>
@@ -62,7 +59,6 @@
<field name="kind">stopall</field>
<field name="action">action_cancel()</field>
</record>
-
<record model="workflow.activity" id="act_invoice">
<field name="wkf_id" ref="wkf_hotel"/>
<field name="name">invoice</field>
@@ -88,7 +84,6 @@
<field name="kind">stopall</field>
<field name="action">action_cancel()</field>
</record>
-
<record model="workflow.activity" id="act_ship">
<field name="wkf_id" ref="wkf_hotel"/>
<field name="name">ship</field>
@@ -138,48 +133,39 @@
<field name="act_to" ref="act_invoice_end"/>
<field name="condition">(order_policy=='picking')</field>
</record>
-
-
<record model="workflow.transition" id="trans_router_wait_invoice">
<field name="act_from" ref="act_router"/>
<field name="act_to" ref="act_wait_invoice"/>
</record>
-
<record model="workflow.transition" id="trans_router_wait_ship">
<field name="act_from" ref="act_router"/>
<field name="act_to" ref="act_wait_ship"/>
</record>
-
<record model="workflow.transition" id="trans_wait_invoice_cancel2">
<field name="act_from" ref="act_wait_invoice"/>
<field name="act_to" ref="act_cancel2"/>
<field name="signal">cancel</field>
</record>
-
<record model="workflow.transition" id="trans_wait_ship_cancel3">
<field name="act_from" ref="act_wait_ship"/>
<field name="act_to" ref="act_cancel3"/>
<field name="signal">cancel</field>
</record>
-
<record model="workflow.transition" id="trans_wait_ship_ship">
<field name="act_from" ref="act_wait_ship"/>
<field name="act_to" ref="act_ship"/>
<field name="condition">(order_policy!='prepaid') or invoiced</field>
</record>
-
<record model="workflow.transition" id="trans_wait_invoice_invoice">
<field name="act_from" ref="act_wait_invoice"/>
<field name="act_to" ref="act_invoice"/>
<field name="condition">(order_policy=='prepaid') or ((order_policy=='postpaid') and shipped)</field>
</record>
-
<record model="workflow.transition" id="trans_wait_invoice_invoice_manual">
<field name="act_from" ref="act_wait_invoice"/>
<field name="act_to" ref="act_invoice"/>
<field name="signal">manual_invoice</field>
</record>
-
<record model="workflow.transition" id="trans_invoice_invoice_end">
<field name="act_from" ref="act_invoice"/>
<field name="act_to" ref="act_invoice_end"/>
@@ -209,7 +195,6 @@
<field name="act_from" ref="act_ship_end"/>
<field name="act_to" ref="act_done"/>
</record>
-
<record model="workflow.transition" id="trans_ship_ship_end">
<field name="act_from" ref="act_ship"/>
<field name="act_to" ref="act_ship_end"/>
=== added file 'hotel/hotel_scheduler.xml'
--- hotel/hotel_scheduler.xml 1970-01-01 00:00:00 +0000
+++ hotel/hotel_scheduler.xml 2014-04-18 16:01:07 +0000
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding='UTF-8'?>
+<openerp>
+ <data>
+
+ <record model="ir.cron" id="room_analytic_cron">
+ <field name="name">Room analysis</field>
+ <field name="interval_number">1</field>
+ <field name="interval_type">minutes</field>
+ <field name="numbercall">-1</field>
+ <field name="doall" eval="False"/>
+ <field name="model" eval="'hotel.room'"/>
+ <field name="function" eval="'cron_room_line'"/>
+ <field name="args" eval="'()'" />
+ </record>
+
+ </data>
+</openerp>
\ No newline at end of file
=== added file 'hotel/hotel_sequence.xml'
--- hotel/hotel_sequence.xml 1970-01-01 00:00:00 +0000
+++ hotel/hotel_sequence.xml 2014-04-18 16:01:07 +0000
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+ <data noupdate="1">
+
+ <!-- Sequences for hotel.folio -->
+ <record model="ir.sequence.type" id="seq_type_hotel_folio">
+ <field name="name">Hotel Folio</field>
+ <field name="code">hotel.folio</field>
+ </record>
+ <record model="ir.sequence" id="seq_hotel_folio">
+ <field name="name">Hotel Folio</field>
+ <field name="code">hotel.folio</field>
+ <field name="prefix">Folio/</field>
+ <field name="padding">5</field>
+ </record>
+
+ </data>
+</openerp>
\ No newline at end of file
=== modified file 'hotel/hotel_view.xml'
--- hotel/hotel_view.xml 2012-11-23 03:00:23 +0000
+++ hotel/hotel_view.xml 2014-04-18 16:01:07 +0000
@@ -1,439 +1,855 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="utf-8"?>
<openerp>
- <data>
- <menuitem id="hotel_management_menu" name="Hotel Management" web_icon="data/hotel-grey.png"
+ <data>
+ <menuitem id="hotel_management_menu" name="Hotel Management" web_icon="data/hotel-grey.png"
web_icon_hover="data/hotel-color.png"/>
- <menuitem id="hotel_configuration_menu" name="Configuration" sequence="20" parent ="hotel_management_menu"/>
- <menuitem id="hotel_report_menu" name="Reports" sequence="6" parent ="hotel_management_menu"/>
-
-
- <!--====================================================
- Floor
- ==================================================== -->
-
- <record model="ir.ui.view" id="view_hotel_floor_form">
- <field name="name">hotel.floor.form</field>
- <field name="model">hotel.floor</field>
- <field name="arch" type="xml">
- <form string=" Hotel Floor">
- <field name="name" colspan="1"/>
- <field name="sequence" select="1"/>
- </form>
- </field>
- </record>
- <record model="ir.ui.view" id="view_hotel_floor_tree">
- <field name="name">hotel.floor.tree</field>
- <field name="model">hotel.floor</field>
- <field name="arch" type="xml">
- <tree string=" Hotel Floors">
- <field name="name" colspan="1"/>
- <field name="sequence" select="1"/>
- </tree>
- </field>
- </record>
- <record model="ir.actions.act_window" id="open_hotel_floor_form_tree">
- <field name="name">Floor Structure</field>
- <field name="res_model">hotel.floor</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- </record>
- <menuitem name="Floor"
- id="menu_open_hotel_floor_form_tree"
- action="open_hotel_floor_form_tree"
- sequence="21"
- parent="hotel_configuration_menu"/>
-
- <!--====================================================================
- Amenities Type
- ====================================================================-->
-
- <record model="ir.ui.view" id="view_hotel_room_amenities_type_form">
- <field name="name">hotel.room_amenities_type_form</field>
- <field name="model">hotel.room_amenities_type</field>
- <field name="arch" type="xml">
- <form string="Hotel Room Amenities Type">
- <field name="name"/>
- <field name="parent_id" domain="[('isamenitype','=',True)]"/>
- </form>
- </field>
- </record>
- <record model="ir.ui.view" id="view_hotel_room_amenities_type_list">
- <field name="name">hotel.room_amenities_type_list</field>
- <field name="model">hotel.room_amenities_type</field>
- <field name="arch" type="xml">
- <tree string="Hotel Room Amenities Type">
- <field name="complete_name"/>
-
- </tree>
- </field>
- </record>
- <record model="ir.actions.act_window" id="action_hotel_room_amenities_type_view_form">
- <field name="name">Hotel Room Amenities Type</field>
- <field name="res_model">hotel.room_amenities_type</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- </record>
- <menuitem id="menu_amenity" name="Amenity" parent="hotel.hotel_configuration_menu" sequence="2"/>
- <menuitem name="Amenity Types"
- id="menu_action_hotel_room_amenities_type_view_form"
- action="action_hotel_room_amenities_type_view_form"
- sequence="3"
- parent="hotel.menu_amenity"/>
-
-
-
- <!--===============================================================
- Room Amenities
+ <menuitem id="hotel_configuration_menu" name="Configuration" sequence="20" parent ="hotel_management_menu"/>
+ <menuitem id="hotel_report_menu" name="Reports" sequence="6" parent="hotel_management_menu"/>
+
+ <!-- ###############################################
+ #############Company Configuration#############
+ ###############################################
+ -->
+
+ <record id="res_company_inherit_config_hotel" model="ir.ui.view">
+ <field name="name">res.company.inherit.config.hotel</field>
+ <field name="model">res.company</field>
+ <field name="inherit_id" ref="base.view_company_form" />
+ <field name="arch" type="xml">
+ <xpath expr="//field[@name='currency_id']" position="after">
+ <field name="additional_hours"/>
+ </xpath>
+ </field>
+ </record>
+ <!--====================================================
+ Floor
+ ==================================================== -->
+
+ <record model="ir.ui.view" id="view_hotel_floor_form">
+ <field name="name">hotel.floor.form</field>
+ <field name="model">hotel.floor</field>
+ <field name="arch" type="xml">
+ <form string=" Hotel Floor" version="7.0">
+ <sheet>
+ <group>
+ <field name="name" colspan="1"/>
+ <field name="sequence" select="1"/>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record model="ir.ui.view" id="view_hotel_floor_tree">
+ <field name="name">hotel.floor.tree</field>
+ <field name="model">hotel.floor</field>
+ <field name="arch" type="xml">
+ <tree string=" Hotel Floors">
+ <field name="name" colspan="1"/>
+ <field name="sequence" select="1"/>
+ </tree>
+ </field>
+ </record>
+ <record model="ir.actions.act_window" id="open_hotel_floor_form_tree">
+ <field name="name">Floor Structure</field>
+ <field name="res_model">hotel.floor</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ </record>
+ <menuitem name="Floor"
+ id="menu_open_hotel_floor_form_tree"
+ action="open_hotel_floor_form_tree"
+ sequence="21"
+ parent="hotel_configuration_menu"/>
+
+ <!--====================================================================
+ Amenities Type
+ ====================================================================-->
+
+ <record model="ir.ui.view" id="view_hotel_room_amenities_type_form">
+ <field name="name">hotel.room_amenities_type_form</field>
+ <field name="model">hotel.room.amenities.type</field>
+ <field name="arch" type="xml">
+ <form string="Hotel Room Amenities Type" version="7.0">
+ <sheet>
+ <group>
+ <field name="name"/>
+ <field name="parent_id" domain="[('isamenitype','=',True)]"/>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record model="ir.ui.view" id="view_hotel_room_amenities_type_list">
+ <field name="name">hotel.room_amenities_type_list</field>
+ <field name="model">hotel.room.amenities.type</field>
+ <field name="arch" type="xml">
+ <tree string="Hotel Room Amenities Type">
+ <field name="complete_name"/>
+ </tree>
+ </field>
+ </record>
+ <record model="ir.actions.act_window" id="action_hotel_room_amenities_type_view_form">
+ <field name="name">Hotel Room Amenities Type</field>
+ <field name="res_model">hotel.room.amenities.type</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ </record>
+ <menuitem id="menu_amenity" name="Amenity" parent="hotel.hotel_configuration_menu" sequence="2"/>
+ <menuitem name="Amenity Types"
+ id="menu_action_hotel_room_amenities_type_view_form"
+ action="action_hotel_room_amenities_type_view_form"
+ sequence="3"
+ parent="hotel.menu_amenity"/>
+
+ <!--===============================================================
+ Room Amenities
===============================================================-->
-
-
-
-
- <record model="ir.ui.view" id="view_hotel_room_amenities_search">
- <field name="name">hotel.room_amenities_search</field>
- <field name="model">hotel.room_amenities</field>
- <field name="arch" type="xml">
- <search string="Hotel Room Amenities">
- <field name="name" />
- <field name="categ_id" select="1"/>
- <field name="list_price" string="Amenity rate"/>
- <newline/>
- <group expand="0" string="Group By...">
- <filter name="categ_id" string="Catagory" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'categ_id'}" />
- </group>
- </search>
- </field>
- </record>
-
- <record model="ir.ui.view" id="view_hotel_room_amenities_list">
- <field name="name">hotel.room_amenities_list</field>
- <field name="model">hotel.room_amenities</field>
- <field name="arch" type="xml">
- <tree string="Hotel Room Amenities">
- <field name="name" />
- <field name="categ_id" select="1"/>
- <field name="list_price" string="Amenity rate"/>
-
- </tree>
- </field>
- </record>
- <record model="ir.actions.act_window" id="action_hotel_room_amenities_view_form">
- <field name="name">Hotel Room Amenities</field>
- <field name="res_model">hotel.room_amenities</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="view_id" ref="view_hotel_room_amenities_list"/>
- </record>
- <menuitem name="Amenities"
- id="menu_action_hotel_room_amenities_view_form"
- action="action_hotel_room_amenities_view_form"
- sequence="2"
- parent="hotel.menu_amenity"/>
-
- <!--========================================================
- Room Type
- ========================================================-->
- <record model="ir.ui.view" id="view_hotel_room_type_form">
- <field name="name">hotel.room_type.form</field>
- <field name="model">hotel.room_type</field>
- <field name="arch" type="xml">
- <form string=" Hotel Room Type">
- <field name="name" select="1"/>
- <field name="parent_id" domain="[('isroomtype','=',True)]" select="1"/>
- </form>
- </field>
- </record>
- <record model="ir.ui.view" id="view_hotel_room_type_tree">
- <field name="name">hotel.room_type.tree</field>
- <field name="model">hotel.room_type</field>
- <field name="arch" type="xml">
- <tree string=" Hotel Room Type">
- <field name="complete_name"/>
- </tree>
- </field>
- </record>
- <record model="ir.actions.act_window" id="open_hotel_room_type_form_tree">
- <field name="name">Room Type</field>
- <field name="res_model">hotel.room_type</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- </record>
- <menuitem id="menu_hotel_room" name="Room" parent="hotel.hotel_configuration_menu" sequence="2"/>
- <menuitem name="Room Types"
- id="menu_open_hotel_room_type_form_tree"
- action="open_hotel_room_type_form_tree"
- sequence="6"
- parent="hotel.menu_hotel_room"/>
-
- <!--===================================================
- Rooms
- =================================================== -->
-
- <record model="ir.ui.view" id="view_hotel_room_form">
- <field name="name">hotel.room.form</field>
- <field name="model">hotel.room</field>
- <field name="arch" type="xml">
- <form string="Hotel Room">
- <notebook>
- <page string="Information">
- <field name="name" select="1"/>
- <field name="floor_id" string = "Floor" />
- <newline/>
- <field name="categ_id" select="1" domain="[('isroomtype','=',True)]"/>
- <field name="state" select="2" string="Room Status"/>
- <field name="uom_id"/>
- <field name="product_manager" select="2"/>
- <newline/>
- <separator colspan='4' string="Supplier Taxes"/>
- <field name="supplier_taxes_id" colspan="4" nolabel='1'/>
- <newline/>
- <separator colspan='4' string="Customer Taxes"/>
- <field name="taxes_id" colspan="4" nolabel='1'/>
- </page>
- <page string = "Room Amenities">
- <separator string=" Room Amenities"/>
- <field name="room_amenities" colspan="4" nolabel="1"/>
- </page>
- <page string="Procurement">
- <field name="active" select="2"/>
- <newline/>
- <field name="list_price"/>
- <field name="rental" select="2"/>
- <field name="standard_price"/>
- <field name="cost_method"/>
- <newline/>
- <field name="uos_id" />
- <field name="uos_coeff" />
- <newline />
- <field name="seller_ids" colspan="4" nolabel="1" widget="one2many_list"/>
-
- </page>
- <page string="Descriptions">
- <separator string="Description" />
- <field name="description" colspan="4" nolabel="1" />
- </page>
- </notebook>
- </form>
- </field>
- </record>
-
- <record model="ir.ui.view" id="view_hotel_room_search">
- <field name="name">hotel.room.search</field>
- <field name="model">hotel.room</field>
- <field name="arch" type="xml">
- <search string="Hotel Room" >
- <field name="name" />
- <field name="categ_id" select="1"/>
- <field name="list_price" string="Room rate"/>
- <newline/>
- <group expand="0" string="Group By...">
- <filter name="categ_id" string="Catagory" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'categ_id'}" />
- </group>
- </search>
- </field>
- </record>
-
- <record model="ir.ui.view" id="view_hotel_room_tree">
- <field name="name">hotel.room.tree</field>
- <field name="model">hotel.room</field>
- <field name="arch" type="xml">
- <tree string="Hotel Room" >
- <field name="name" />
- <field name="categ_id" select="1"/>
- <field name="list_price" string="Room rate"/>
- </tree>
- </field>
- </record>
- <record model="ir.actions.act_window" id="action_hotel_room_form">
- <field name="name">Hotel Room</field>
- <field name="res_model">hotel.room</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- </record>
-
- <menuitem name="Rooms"
- id="menu_open_hotel_room_form"
- action="action_hotel_room_form"
- sequence="5"
- parent="hotel.menu_hotel_room"/>
-
- <!-- Services -->
-
- <record model="ir.ui.view" id="view_hotel_service_type_form">
- <field name="name">hotel.service_type.form</field>
- <field name="model">hotel.service_type</field>
- <field name="arch" type="xml">
- <form string="Service Type">
- <field name="name" select="1"/>
- <field name="parent_id" domain="[('isservicetype','=',True)]" select="1"/>
- </form>
- </field>
- </record>
- <record model="ir.ui.view" id="view_hotel_service_type_tree">
- <field name="name">hotel.service_type.tree</field>
- <field name="model">hotel.service_type</field>
- <field name="arch" type="xml">
- <tree string="Service Type">
- <field name="complete_name"/>
- </tree>
- </field>
- </record>
- <record model="ir.actions.act_window" id="open_hotel_service_type_form_tree">
- <field name="name">Service Type</field>
- <field name="res_model">hotel.service_type</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- </record>
- <menuitem id="menu_hotel_service" name="Services" parent="hotel.hotel_configuration_menu" sequence="2"/>
- <menuitem name="Service Types"
- id="menu_open_hotel_service_type_form_tree"
- action="open_hotel_service_type_form_tree"
- sequence="9"
- parent="hotel.menu_hotel_service"/>
-
-
- <record model="ir.ui.view" id="view_hotel_services_search">
- <field name="name">hotel.services.search</field>
- <field name="model">hotel.services</field>
- <field name="arch" type="xml">
- <search string="Hotel Services" >
- <field name="name" />
- <field name="categ_id" select="1"/>
- <field name="list_price" string="Service rate"/>
- <newline/>
- <group expand="0" string="Group By...">
- <filter name="categ_id" string="Catagory" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'categ_id'}" />
- </group>
- </search>
- </field>
- </record>
-
- <record model="ir.ui.view" id="view_hotel_services_tree">
- <field name="name">hotel.services.tree</field>
- <field name="model">hotel.services</field>
- <field name="arch" type="xml">
- <tree string="Hotel Services" >
- <field name="name" />
- <field name="categ_id" select="1"/>
- <field name="list_price" string="Service rate"/>
- </tree>
- </field>
- </record>
- <record model="ir.actions.act_window" id="action_hotel_services_form">
- <field name="name">Hotel Services</field>
- <field name="res_model">hotel.services</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- </record>
-
- <menuitem name="Services"
- id="menu_open_hotel_services_form"
- action="action_hotel_services_form"
- sequence="8"
- parent="hotel.menu_hotel_service"/>
-
-
- <!--========================================================
- Hotel Folio
- ========================================================-->
- <record model="ir.ui.view" id="view_hotel_folio1_tree">
- <field name="name">hotel.folio.tree</field>
- <field name="model">hotel.folio</field>
- <field name="arch" type="xml">
- <tree string="Hotel Folio1">
-
- <field name="checkin_date" />
- <field name="checkout_date" />
- <field name="name" select="1"/>
- <field name="partner_id" select="1"/>
- <field name="date_order" select="1"/>
- <field name="amount_total" sum="Total amount"/>
- </tree>
- </field>
- </record>
-
- <record model="ir.ui.view" id="hotel_folio_calendar_view">
- <field name="name">Hotel- Folios Calendar</field>
- <field name="model">hotel.folio</field>
- <field name="arch" type="xml">
- <calendar string="Folios" date_start="checkin_date" color="user_id" date_stop="checkout_date">
- <field name="name"/>
- <field name="partner_id"/>
- <field name="duration"/>
- </calendar>
- </field>
- </record>
-
- <record model="ir.actions.act_window" id="open_hotel_folio1_form_tree">
- <field name="name">Hotel Folio</field>
- <field name="res_model">hotel.folio</field>
- <field name="view_type">form</field>
- <field name="view_mode">form,tree,calendar</field>
- </record>
-
-
- <record model="ir.actions.act_window" id="open_hotel_folio1_form_tree_all">
- <field name="name">Hotel Folio</field>
- <field name="res_model">hotel.folio</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form,calendar</field>
- </record>
-
- <menuitem id="menu_all_folio" name="Folio" parent="hotel.hotel_management_menu" sequence="4"/>
- <menuitem name="All Folio"
- id="menu_open_hotel_folio1_form_tree_all"
- action="open_hotel_folio1_form_tree_all"
- sequence="5"
- parent ="menu_all_folio"/>
-
- <menuitem name="Generate Folio"
- id="menu_open_hotel_folio1_form_tree"
- action="open_hotel_folio1_form_tree"
- parent ="menu_all_folio"/>
-
- <!-- Categories for Room, Amenities, Services -->
-
- <record model="ir.actions.act_window" id="hotel_room_category_action">
- <field name="name">Rooms by Category</field>
- <field name="type">ir.actions.act_window</field>
- <field name="res_model">product.category</field>
- <field name="domain">[('parent_id','=',False),('isroomtype','=',True)]</field>
- <field name="view_type">tree</field>
- <field name="view_id" ref="product.product_category_tree_view"/>
- </record>
- <menuitem name="Room by Category"
- id="menu_hotel_room_category_action"
- action="hotel_room_category_action"
- sequence="7"
- parent="hotel.menu_hotel_room"/>
-
- <record model="ir.actions.act_window" id="hotel_amenity_category_action">
- <field name="name">Amenities by Category</field>
- <field name="type">ir.actions.act_window</field>
- <field name="res_model">product.category</field>
- <field name="domain">[('parent_id','=',False),('isamenitype','=',True)]</field>
- <field name="view_type">tree</field>
- <field name="view_id" ref="product.product_category_tree_view"/>
- </record>
- <menuitem name="Amenities by Category"
- id="menu_hotel_amenity_category_action"
- action="hotel_amenity_category_action"
- sequence="4"
- parent="hotel.menu_amenity"/>
-
- <record model="ir.actions.act_window" id="hotel_service_category_action">
- <field name="name">Services by Category</field>
- <field name="type">ir.actions.act_window</field>
- <field name="res_model">product.category</field>
- <field name="domain">[('parent_id','=',False),('isservicetype','=',True)]</field>
- <field name="view_type">tree</field>
- <field name="view_id" ref="product.product_category_tree_view"/>
- </record>
- <menuitem name="Services by Category"
- id="menu_hotel_service_category_action"
- action="hotel_service_category_action"
- sequence="10"
- parent="hotel.menu_hotel_service"/>
-
- </data>
-</openerp>
+
+ <record id="view_hotel_room_amenities_form" model="ir.ui.view" >
+ <field name="name">hotel.room.amenities.form</field>
+ <field name="model">hotel.room.amenities</field>
+ <field name="arch" type="xml">
+ <form string="Hotel Room Amenities" version="7.0">
+ <sheet>
+ <h1>
+ <label string="Amenity" />
+ <field name="name" select="1"/>
+ </h1>
+ <group>
+ <field name="default_code" select="1"/>
+ </group>
+ <notebook>
+ <page string="Information">
+ <group colspan="4" col="4">
+ <field name="type" select="2"/>
+ <field name="product_manager" select="2"/>
+ <!-- <field name="procure_method"/> -->
+ <field name="state" select="2"/>
+ <field name="categ_id" select="1" domain="[('isamenitype','=',True)]"/>
+ <field name="uom_id"/>
+ <field name="uom_po_id"/>
+ </group>
+ <newline/>
+ <separator colspan='4' string="Supplier Taxes"/>
+ <field name="supplier_taxes_id" colspan="4" nolabel='1' help='Define supplier taxes if there any on the Amenity. '/>
+ <newline/>
+ <separator colspan='4' string="Customer Taxes"/>
+ <field name="taxes_id" colspan="4" nolabel='1' help='List of customer taxes applied on the Amenity. '/>
+ </page>
+
+ <page string="Procurement">
+ <group colspan="4" col="4">
+ <!-- <field name="supply_method"/> -->
+ <field name="active" select="2"/>
+ <field name="list_price"/>
+ <field name="cost_method"/>
+ <field name="sale_ok" select="2"/>
+ <field name="standard_price"/>
+ <field name="rental" select="2"/>
+ <field name="uos_id" />
+ <field name="uos_coeff" />
+ </group>
+ <newline />
+ <group>
+ <separator string="Suppliers" />
+ <field name="seller_ids" colspan="4" nolabel="1" widget="one2many_list"/>
+ </group>
+ </page>
+ <page string="Descriptions">
+ <separator string="Description" />
+ <field name="description" colspan="4" nolabel="1" />
+ <separator string="Sale Description"/>
+ <field name="description_sale" colspan="4" nolabel="1"/>
+ <separator string="Purchase Description"/>
+ <field name="description_purchase" colspan="4" nolabel="1"/>
+ </page>
+ </notebook>
+ </sheet>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_hotel_room_amenities_search">
+ <field name="name">hotel.room_amenities_search</field>
+ <field name="model">hotel.room.amenities</field>
+ <field name="arch" type="xml">
+ <search string="Hotel Room Amenities">
+ <field name="name" />
+ <field name="categ_id" select="1"/>
+ <field name="list_price" string="Amenity rate"/>
+ <newline/>
+ <group expand="0" string="Group By...">
+ <filter name="categ_id" string="Catagory" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'categ_id'}" />
+ </group>
+ </search>
+ </field>
+ </record>
+ <record model="ir.ui.view" id="view_hotel_room_amenities_list">
+ <field name="name">hotel.room_amenities_list</field>
+ <field name="model">hotel.room.amenities</field>
+ <field name="arch" type="xml">
+ <tree string="Hotel Room Amenities">
+ <field name="name" />
+ <field name="categ_id" select="1"/>
+ <field name="list_price" string="Amenity rate"/>
+ </tree>
+ </field>
+ </record>
+ <record model="ir.actions.act_window" id="action_hotel_room_amenities_view_form">
+ <field name="name">Hotel Room Amenities</field>
+ <field name="res_model">hotel.room.amenities</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="view_id" ref="view_hotel_room_amenities_list"/>
+ </record>
+ <menuitem name="Amenities"
+ id="menu_action_hotel_room_amenities_view_form"
+ action="action_hotel_room_amenities_view_form"
+ sequence="2"
+ parent="hotel.menu_amenity"/>
+
+ <!--========================================================
+ Room Type
+ ========================================================-->
+ <record model="ir.ui.view" id="view_hotel_room_type_form">
+ <field name="name">hotel.room_type.form</field>
+ <field name="model">hotel.room.type</field>
+ <field name="arch" type="xml">
+ <form string=" Hotel Room Type" version="7.0">
+ <sheet>
+ <group>
+ <field name="name" select="1"/>
+ <field name="parent_id" domain="[('isroomtype','=',True)]" select="1"/>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record model="ir.ui.view" id="view_hotel_room_type_tree">
+ <field name="name">hotel.room_type.tree</field>
+ <field name="model">hotel.room.type</field>
+ <field name="arch" type="xml">
+ <tree string=" Hotel Room Type">
+ <field name="complete_name"/>
+ </tree>
+ </field>
+ </record>
+ <record model="ir.actions.act_window" id="open_hotel_room_type_form_tree">
+ <field name="name">Room Type</field>
+ <field name="res_model">hotel.room.type</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ </record>
+ <menuitem id="menu_hotel_room" name="Room" parent="hotel.hotel_configuration_menu" sequence="2"/>
+ <menuitem name="Room Types"
+ id="menu_open_hotel_room_type_form_tree"
+ action="open_hotel_room_type_form_tree"
+ sequence="6"
+ parent="hotel.menu_hotel_room"/>
+
+ <!--===================================================
+ Rooms
+ =================================================== -->
+
+ <record model="ir.ui.view" id="view_hotel_room_form">
+ <field name="name">hotel.room.form</field>
+ <field name="model">hotel.room</field>
+ <field name="arch" type="xml">
+ <form string="Hotel Room" version="7.0">
+ <header>
+ <field name="state" string="Room Status" widget='statusbar'/>
+ </header>
+ <sheet>
+ <div class="oe_title">
+ <label for="name" string="Name" />
+ <h1>
+ <field name="name" select="1"/>
+ </h1>
+ <label for="status" string="Status" />
+ <h2>
+ <field name="status" />
+ </h2>
+ </div>
+ <notebook>
+ <page string="Information">
+ <group colspan="4" col="4">
+ <field name="floor_id" string = "Floor" />
+ <field name="categ_id" select="1" domain="[('isroomtype','=',True)]"/>
+ <field name="product_manager" select="2"/>
+ <field name="uom_id" invisible="1"/>
+ </group>
+ <newline/>
+ <separator colspan='4' string="Supplier Taxes"/>
+ <field name="supplier_taxes_id" colspan="4" nolabel='1' help='List of supplier taxes if there any on the defined room. '/>
+ <newline/>
+ <separator colspan='4' string="Customer Taxes"/>
+ <field name="taxes_id" colspan="4" nolabel='1' help='Customer taxes apply on the perticular room. '/>
+ </page>
+ <page string = "Room Amenities">
+ <separator string=" Room Amenities"/>
+ <field name="room_amenities" colspan="4" nolabel="1"/>
+ </page>
+ <page string="Procurement">
+ <group colspan="4" col="4">
+ <field name="active" select="2"/>
+ <field name="list_price"/> -->
+ <field name="rental" select="2"/>
+ <field name="standard_price"/>
+ <field name="cost_method"/>
+ <field name="uos_id"/>
+ <field name="uos_coeff" />
+ <newline/>
+ <separator string="Room Rent" />
+ <field name="room_rent_ids" colspan="4" nolabel='1' >
+ <form string="Room Rent" version="7.0">
+ <group colspan="4" col="2">
+ <field name="price"/>
+ </group>
+ <group colspan="4" col="8">
+ <field name="mon"/>
+ <field name="tue"/>
+ <field name="wed"/>
+ <field name="thu"/>
+ <field name="fri"/>
+ <field name="sat"/>
+ <field name="sun"/>
+ </group>
+ </form>
+ <tree string="Room Rent" editable="bottom" >
+ <field name="price"/>
+ <field name="mon"/>
+ <field name="tue"/>
+ <field name="wed"/>
+ <field name="thu"/>
+ <field name="fri"/>
+ <field name="sat"/>
+ <field name="sun"/>
+ </tree>
+ </field>
+ </group>
+ <newline/>
+ <group>
+ <separator string="Suppliers" />
+ <field name="seller_ids" colspan="4" nolabel="1" widget="one2many_list"/>
+ </group>
+ </page>
+ <page string="Descriptions">
+ <separator string="Description" />
+ <field name="description" colspan="4" nolabel="1" />
+ </page>
+ </notebook>
+ </sheet>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_hotel_room_search">
+ <field name="name">hotel.room.search</field>
+ <field name="model">hotel.room</field>
+ <field name="arch" type="xml">
+ <search string="Hotel Room" >
+ <field name="name" />
+ <field name="categ_id" select="1"/>
+ <field name="list_price" string="Room rate"/>
+ <field name="state" string="Status"/>
+ <newline/>
+ <filter string="Available" domain="[('state','=', 'unassigned')]" help="Available Rooms" />
+ <group expand="0" string="Group By...">
+ <filter name="state" string="state" domain="[]" context="{'group_by':'state'}" />
+ </group>
+ </search>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_hotel_room_tree">
+ <field name="name">hotel.room.tree</field>
+ <field name="model">hotel.room</field>
+ <field name="arch" type="xml">
+ <tree string="Hotel Room" >
+ <field name="name" />
+ <field name="categ_id" select="1"/>
+ <field name="list_price" string="Room rate"/>
+ <field name="status"/>
+ </tree>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_hotel_room_kanban">
+ <field name="name">hotel.room.kanban</field>
+ <field name="model">hotel.room</field>
+ <field name="arch" type="xml">
+ <kanban version="7.0" default_group_by="status" >
+ <field name="product_id" />
+ <field name="status" />
+ <field name="color" />
+ <templates>
+ <t t-name="kanban-box">
+ <!-- <div class="oe_kanban_vignette oe_semantic_html_override"> -->
+ <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_project oe_kanban_global_click">
+ <div class="oe_dropdown_toggle oe_dropdown_kanban" groups="base.group_user">
+ <span class="oe_e">í</span>
+ <ul class="oe_dropdown_menu">
+ <t t-if="widget.view.is_action_enabled('edit')"><li><a type="edit">Edit</a></li></t>
+ <t t-if="widget.view.is_action_enabled('delete')"><li><a type="delete">Delete</a></li></t>
+ <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
+ </ul>
+ </div>
+ <!-- <div class="oe_kanban_details"> -->
+ <div class="oe_kanban_content">
+ <div class="oe_kanban_project_list">
+ <h4>
+ <a type="open">
+ <t t-if="record.code.raw_value" style="margin-right: 10px">[<field name="code" />] </t> <field name="name"/>
+ </a>
+ </h4>
+ <div name="tags"/>
+ <ul>
+ <li>Status: <field name="status"></field></li>
+ <li>Rate: <field name="list_price"></field></li>
+ </ul>
+ </div>
+ <div class="oe_kanban_bottom_right">
+ <a t-if="record.status.raw_value === 'available'" type="object" string="Available" name="set_room_status_occupied" class="oe_kanban_status oe_kanban_status_green "> </a>
+ <a t-if="record.status.raw_value === 'occupied'" type="object" string="occupied" name="set_room_status_available" class="oe_kanban_status oe_kanban_status_red " > </a>
+ </div>
+ </div>
+ </div>
+ </t>
+ </templates>
+ </kanban>
+ </field>
+ </record>
+
+ <record model="ir.actions.act_window" id="action_hotel_room_form">
+ <field name="name">Hotel Room</field>
+ <field name="res_model">hotel.room</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">kanban,tree,form</field>
+ </record>
+
+ <menuitem name="Rooms"
+ id="menu_open_hotel_room_form"
+ action="action_hotel_room_form"
+ sequence="5"
+ parent="hotel.menu_hotel_room"/>
+
+ <!-- Services -->
+ <record model="ir.ui.view" id="view_hotel_service_type_form">
+ <field name="name">hotel.service_type.form</field>
+ <field name="model">hotel.service.type</field>
+ <field name="arch" type="xml">
+ <form string="Service Type" version="7.0">
+ <sheet>
+ <group>
+ <field name="name" select="1"/>
+ <field name="parent_id" domain="[('isservicetype','=',True)]" select="1"/>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record model="ir.ui.view" id="view_hotel_service_type_tree">
+ <field name="name">hotel.service_type.tree</field>
+ <field name="model">hotel.service.type</field>
+ <field name="arch" type="xml">
+ <tree string="Service Type">
+ <field name="complete_name"/>
+ </tree>
+ </field>
+ </record>
+ <record model="ir.actions.act_window" id="open_hotel_service_type_form_tree">
+ <field name="name">Service Type</field>
+ <field name="res_model">hotel.service.type</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ </record>
+ <menuitem id="menu_hotel_service" name="Services" parent="hotel.hotel_configuration_menu" sequence="2"/>
+ <menuitem name="Service Types"
+ id="menu_open_hotel_service_type_form_tree"
+ action="open_hotel_service_type_form_tree"
+ sequence="9"
+ parent="hotel.menu_hotel_service"/>
+
+ <record model="ir.ui.view" id="view_hotel_services_form">
+ <field name="name">.hotel.services.form</field>
+ <field name="model">hotel.services</field>
+ <field name="arch" type="xml">
+ <form string="Hotel Services" version="7.0">
+ <sheet>
+ <h1>
+ <label string="Service" />
+ <field name="name" select="1"/>
+ </h1>
+ <group>
+ <field name="default_code" select="1" />
+ </group>
+ <notebook>
+ <page string="Information">
+ <group>
+ <group colspan="4" col="4">
+ <field name="type" select="2"/>
+ <!-- <field name="procure_method"/> -->
+ <field name="state" select="2"/>
+ <field name="categ_id" domain="[('isservicetype','=',True)]" select="1"/>
+ <field name="product_manager" select="2"/>
+ <field name="uom_id"/>
+ <field name="uom_po_id"/>
+ </group>
+ </group>
+ <newline/>
+ <separator colspan='4' string="Supplier Taxes"/>
+ <field name="supplier_taxes_id" colspan="4" nolabel='1' help='List of supplier taxes related to the service provided by hotel.'/>
+ <newline/>
+ <separator colspan='4' string="Customer Taxes"/>
+ <field name="taxes_id" colspan="4" nolabel='1' help='Customer taxes applied on the service.'/>
+ </page>
+ <page string="Procurement">
+ <group colspan="4" col="4">
+ <!-- <field name="supply_method"/> -->
+ <field name="active" select="2"/>
+ <field name="list_price"/>
+ <field name="cost_method"/>
+ <field name="sale_ok" select="2"/>
+ <field name="standard_price"/>
+ <field name="rental" select="2"/>
+ <field name="uos_id" />
+ <field name="uos_coeff" />
+ </group>
+ <newline />
+ <group>
+ <separator string="Suplliers" />
+ <field name="seller_ids" colspan="4" nolabel="1" widget="one2many_list"/>
+ </group>
+ </page>
+ <page string="Descriptions">
+ <separator string="Description" />
+ <field name="description" colspan="4" nolabel="1" />
+ <separator string="Sale Description"/>
+ <field name="description_sale" colspan="4" nolabel="1"/>
+ <separator string="Purchase Description"/>
+ <field name="description_purchase" colspan="4" nolabel="1"/>
+ </page>
+ </notebook>
+ </sheet>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_hotel_services_search">
+ <field name="name">hotel.services.search</field>
+ <field name="model">hotel.services</field>
+ <field name="arch" type="xml">
+ <search string="Hotel Services" >
+ <field name="name" />
+ <field name="categ_id" select="1"/>
+ <field name="list_price" string="Service rate"/>
+ <newline/>
+ <group expand="0" string="Group By...">
+ <filter name="categ_id" string="Catagory" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'categ_id'}" />
+ </group>
+ </search>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_hotel_services_tree">
+ <field name="name">hotel.services.tree</field>
+ <field name="model">hotel.services</field>
+ <field name="arch" type="xml">
+ <tree string="Hotel Services" >
+ <field name="name" />
+ <field name="categ_id" select="1"/>
+ <field name="list_price" string="Service rate"/>
+ </tree>
+ </field>
+ </record>
+ <record model="ir.actions.act_window" id="action_hotel_services_form">
+ <field name="name">Hotel Services</field>
+ <field name="res_model">hotel.services</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ </record>
+
+ <menuitem name="Services"
+ id="menu_open_hotel_services_form"
+ action="action_hotel_services_form"
+ sequence="8"
+ parent="hotel.menu_hotel_service"/>
+
+ <!--========================================================
+ Hotel Folio
+ ========================================================-->
+ <record model="ir.ui.view" id="view_hotel_folio1_form">
+ <field name="name">hotel.folio.form</field>
+ <field name="model">hotel.folio</field>
+ <field name="arch" type="xml">
+ <form string="Folio" version="7.0">
+ <header>
+ <button name="order_confirm" string="Confirm Folio" states="draft" icon="gtk-apply" class="oe_highlight"/>
+ <button name="invoice_recreate" string="Recreate Invoice" states="invoice_except" icon="gtk-redo"/>
+ <button name="invoice_corrected" string="Invoice Corrected" states="invoice_except" icon="gtk-paste-v"/>
+ <button name="ship_recreate" string="Recreate Procurement" states="shipping_except" icon="gtk-redo"/>
+ <button name="ship_corrected" string="Procurement Corrected" states="shipping_except" icon="gtk-paste-v"/>
+ <button name="manual_invoice" states="manual" string="Create Invoice" icon="gtk-new"/>
+ <button name="ship_cancel" string="Cancel Folio" states="shipping_except" icon="gtk-cancel" class="oe_highlight" />
+ <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object" icon="gtk-file"/>
+ <button name="action_cancel" string="Cancel Folio" states="manual,progress" type="object" icon="gtk-cancel"/>
+ <button name="cancel" string="Cancel Folio" states="draft" icon="gtk-cancel"/>
+ <button name="invoice_cancel" string="Cancel Folio" states="invoice_except" icon="gtk-cancel"/>
+ <field name="state" select="2" widget="statusbar" statusbar_visible="draft,sent,invoiced,done"/>
+ </header>
+ <sheet>
+ <label string="Folio Number"/>
+ <h1>
+ <field name="name" colspan="4"/>
+ </h1>
+ <group colspan="4" col="4">
+ <field name="date_order"/>
+ <field name="invoiced"/>
+ <field name="shop_id" string="Branch"/>
+ </group>
+ <notebook colspan="4">
+ <page string="Folio">
+ <group colspan="4" col="4">
+ <field name="partner_id" on_change="onchange_partner_id(partner_id)" required="1" string="Guest Name"/>
+ <field name="partner_invoice_id" domain="[('partner_id','=',partner_id)]" />
+ <field name="pricelist_id" domain="[('type','=','sale')]" />
+ <field name="project_id"/>
+ <field name="partner_shipping_id" domain="[('partner_id','=',partner_id)]" invisible="1" />
+ </group>
+ <newline/>
+ <group colspan="4" col="6">
+ <field name="checkin_date" on_change="onchange_dates(checkin_date,checkout_date)" />
+ <field name="checkout_date" on_change="onchange_dates(checkin_date,checkout_date)"/>
+ <field name="duration" on_change="onchange_dates(checkin_date,False,duration)"/>
+ </group>
+ <separator string="Room Lines" colspan="4"/>
+ <field name="room_lines" colspan="4" string="Room Line" default_get="{'checkin_date': checkin_date,'checkout_date':checkout_date}" nolabel="1">
+ <form string="Room Line" version="7.0">
+ <notebook>
+ <page string="Folio Line">
+ <group>
+ <field name="checkin_date"/>
+ <field name="checkout_date" on_change="on_change_checkout(checkin_date,checkout_date)" />
+ <separator string="Automatic Declaration" colspan="4"/>
+ <field name="product_uom_qty"
+ on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, False, parent.date_order)"
+ context="{'partner_id':parent.partner_id,'quantity':product_uom_qty,'pricelist':parent.pricelist_id,'shop':parent.shop_id,'uom':product_uom}"
+ invisible="1"/>
+ <field name="product_uom"
+ on_change="product_uom_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, False, parent.date_order)"
+ string="Rent(UOM)"/>
+ <field name="product_id"
+ on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, True, parent.date_order)"
+ context="{'partner_id':parent.partner_id,'quantity':product_uom_qty,'pricelist':parent.pricelist_id,'shop':parent.shop_id,'uom':product_uom}"
+ colspan="4" select="1" domain="[('isroom','=',True)]" string="Room No"/>
+ </group>
+ <separator string="Manual Description"
+ colspan="4" />
+ <field name="name" colspan="4" select="2" placeholder="---Description---"/>
+ <group>
+ <field name="price_unit" select="2" string="Rent"/>
+ <field name="discount"/>
+ <newline/>
+ <field name="tax_id" colspan="4" nolabel="1"/>
+ <separator string="States" colspan="4"/>
+ <field name="state" select="2"/>
+ <field name="invoiced" select="2"/>
+ </group>
+ </page>
+ <page string="Extra Info">
+ <group>
+ <field name="product_uos_qty"/>
+ <field name="product_uos" />
+ <field name="address_allotment_id" select="2"/>
+ </group>
+ <!-- <separator string="Properties" colspan="4"/> -->
+ </page>
+ <page string="History">
+ <separator string="Invoice Lines" colspan="4"/>
+ <field name="invoice_lines" colspan="4" nolabel="1"/>
+ </page>
+ </notebook>
+ </form>
+ <tree string = "Room Line">
+ <field name="name"/>
+ <field name="checkin_date"/>
+ <field name="checkout_date"/>
+ <field name="product_id" string="Room No"/>
+ <field name="product_uom" string="Rent(UOM)"/>
+ <field name="price_unit" string="Rent"/>
+ <field name="price_subtotal"/>
+ <field name="state"/>
+ </tree>
+ </field>
+ <separator string="Service Lines" colspan="4"/>
+ <field name="service_lines" colspan="4" string = "Service Line" nolabel="1">
+ <form string="Service Line" version="7.0">
+ <notebook>
+ <page string="Service Line">
+ <separator string="Automatic Declaration" colspan="4"/>
+ <group>
+ <field name="product_uom_qty"
+ on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, False, parent.date_order)"
+ context="{'partner_id':parent.partner_id,'quantity':product_uom_qty,'pricelist':parent.pricelist_id,'shop':parent.shop_id,'uom':product_uom}"
+ select="1"/>
+ <field name="product_uom"
+ on_change="product_uom_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, False, parent.date_order)"
+ />
+ <field name="product_id"
+ on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, True, parent.date_order)"
+ context="{'partner_id':parent.partner_id,'quantity':product_uom_qty,'pricelist':parent.pricelist_id,'shop':parent.shop_id,'uom':product_uom}"
+ select="1" domain="[('isservice','=',True)]" />
+ </group>
+ <separator string="Manual Description"
+ colspan="4"/>
+ <field name="name" colspan="4" select="2" placeholder="---Description---"/>
+ <group>
+ <field name="price_unit" select="2"/>
+ <field name="discount"/>
+ </group>
+ <newline/>
+ <field name="tax_id" colspan="4"/>
+ <group>
+ <separator string="States" colspan="4"/>
+ <field name="state" select="2"/>
+ <field name="invoiced" select="2"/>
+ </group>
+ </page>
+ <page string="Extra Info">
+ <group>
+ <field name="product_uos_qty"/>
+ <field name="product_uos" />
+ <field name="address_allotment_id" select="2"/>
+ </group>
+ <!-- <separator string="Properties" colspan="4"/> -->
+ </page>
+ <page string="History">
+ <separator string="Invoice Lines" colspan="4"/>
+ <field name="invoice_lines" colspan="4" nolabel="1"/>
+ </page>
+ </notebook>
+ </form>
+ <tree string="Service Line">
+ <field name="name"/>
+ <field name="product_id" />
+ <field name="product_uom_qty"/>
+ <field name="price_unit"/>
+ <field name="price_subtotal"/>
+ <field name="state"/>
+ </tree>
+ </field>
+ <group colspan="2" class="oe_subtotal_footer oe_right">
+ <field name="amount_untaxed" sum="Untaxed amount" widget='monetary' />
+ <field name="amount_tax" widget='monetary'/>
+ <div class="oe_subtotal_footer_separator oe_inline">
+ <label for="amount_total" />
+ <button name="button_dummy" string="Compute" states="draft" type="object" icon="terp-sale" class="oe_highlight"/>
+ </div>
+ <field name="amount_total" nolabel="1" sum="Total amount" widget='monetary'/>
+ </group>
+ <div class="oe_clear"/>
+ </page>
+ <page string="Other data">
+ <group>
+ <field name="user_id"/>
+ <field name="order_policy" invisible="1"/>
+ <field name="hotel_policy" attrs="{'readonly':[('state','not in',('draft'))]}"/>
+ <field name="client_order_ref" />
+ </group>
+ </page>
+ <page string="History">
+ <separator string="Related invoices" colspan="4"/>
+ <field name="invoice_ids" colspan="4" nolabel="1"/>
+ </page>
+ </notebook>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record model="ir.ui.view" id="view_hotel_folio1_tree">
+ <field name="name">hotel.folio.tree</field>
+ <field name="model">hotel.folio</field>
+ <field name="arch" type="xml">
+ <tree string="Hotel Folio" colors="blue:state == 'draft';gray:state == 'done'">
+ <field name="checkin_date" />
+ <field name="checkout_date" />
+ <field name="name" select="1"/>
+ <field name="partner_id" select="1"/>
+ <field name="date_order" select="1"/>
+ <field name="state"/>
+ <field name="amount_total" sum="Total amount"/>
+ </tree>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="hotel_folio_calendar_view">
+ <field name="name">Hotel- Folios Calendar</field>
+ <field name="model">hotel.folio</field>
+ <field name="arch" type="xml">
+ <calendar string="Folios" date_start="checkin_date" color="user_id" date_stop="checkout_date">
+ <field name="name"/>
+ <field name="partner_id"/>
+ <field name="duration"/>
+ </calendar>
+ </field>
+ </record>
+
+ <record model="ir.actions.act_window" id="open_hotel_folio1_form_tree_all">
+ <field name="name">Hotel Folio</field>
+ <field name="res_model">hotel.folio</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form,calendar</field>
+ </record>
+
+ <menuitem id="menu_all_folio" name="Folio" parent="hotel.hotel_management_menu" sequence="4"/>
+ <menuitem name="Generate Folio"
+ id="menu_open_hotel_folio1_form_tree_all"
+ action="open_hotel_folio1_form_tree_all"
+ sequence="5"
+ parent ="menu_all_folio"/>
+
+ <!-- Categories for Room, Amenities, Services -->
+ <record model="ir.actions.act_window" id="hotel_room_category_action">
+ <field name="name">Rooms by Category</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">product.category</field>
+ <field name="domain">[('parent_id','=',False),('isroomtype','=',True)]</field>
+ <field name="view_type">tree</field>
+ <field name="view_id" ref="product.product_category_tree_view"/>
+ </record>
+ <menuitem name="Room by Category"
+ id="menu_hotel_room_category_action"
+ action="hotel_room_category_action"
+ sequence="7"
+ parent="hotel.menu_hotel_room"/>
+
+ <record model="ir.actions.act_window" id="hotel_amenity_category_action">
+ <field name="name">Amenities by Category</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">product.category</field>
+ <field name="domain">[('parent_id','=',False),('isamenitype','=',True)]</field>
+ <field name="view_type">tree</field>
+ <field name="view_id" ref="product.product_category_tree_view"/>
+ </record>
+ <menuitem name="Amenities by Category"
+ id="menu_hotel_amenity_category_action"
+ action="hotel_amenity_category_action"
+ sequence="4"
+ parent="hotel.menu_amenity"/>
+
+ <record model="ir.actions.act_window" id="hotel_service_category_action">
+ <field name="name">Services by Category</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">product.category</field>
+ <field name="domain">[('parent_id','=',False),('isservicetype','=',True)]</field>
+ <field name="view_type">tree</field>
+ <field name="view_id" ref="product.product_category_tree_view"/>
+ </record>
+ <menuitem name="Services by Category"
+ id="menu_hotel_service_category_action"
+ action="hotel_service_category_action"
+ sequence="10"
+ parent="hotel.menu_hotel_service"/>
+
+ </data>
+</openerp>
\ No newline at end of file
=== modified file 'hotel/i18n/bg.po' (properties changed: -x to +x)
=== modified file 'hotel/i18n/da.po' (properties changed: -x to +x)
=== modified file 'hotel/i18n/es.po' (properties changed: -x to +x)
=== modified file 'hotel/i18n/hotel.pot' (properties changed: +x to -x)
--- hotel/i18n/hotel.pot 2012-05-22 14:06:57 +0000
+++ hotel/i18n/hotel.pot 2014-04-18 16:01:07 +0000
@@ -4,754 +4,975 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.6\n"
-"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
-"POT-Creation-Date: 2009-11-26 07:33:36+0000\n"
-"PO-Revision-Date: 2009-11-26 07:33:36+0000\n"
-"Last-Translator: <>\n"
+"Project-Id-Version: OpenERP Server 7.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-10-09 13:00+0000\n"
+"PO-Revision-Date: 2013-10-09 18:33+0530\n"
+"Last-Translator: Anil Kesariya <a.kesariya.serpentcs@xxxxxxxxx>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: \n"
+"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: \n"
#. module: hotel
-#: model:ir.ui.menu,name:hotel.menu_open_hotel_folio1_form_tree
+#: model:ir.ui.menu,name:hotel.menu_open_hotel_folio1_form_tree_all
msgid "Generate Folio"
-msgstr ""
+msgstr "Generate Folio"
+
+#. module: hotel
+#: help:hotel.folio,room_lines:0
+msgid "Hotel room reservation detail."
+msgstr "Hotel room reservation detail."
#. module: hotel
#: view:hotel.folio:0
msgid "Recreate Procurement"
-msgstr ""
-
-#. module: hotel
-#: field:hotel.folio,checkout_date:0
-#: field:hotel_folio.line,checkout_date:0
-msgid "Check Out"
-msgstr ""
+msgstr "Recreate Procurement"
+
+#. module: hotel
+#: view:hotel.services:0
+msgid "Service"
+msgstr "Service"
+
+#. module: hotel
+#: view:hotel.room:0
+#: model:ir.actions.act_window,name:hotel.action_hotel_room_form
+#: model:ir.model,name:hotel.model_hotel_room
+msgid "Hotel Room"
+msgstr "Hotel Room"
+
+#. module: hotel
+#: view:hotel.room:0
+#: view:hotel.room.amenities:0
+#: view:hotel.services:0
+msgid "Group By..."
+msgstr "Group By..."
#. module: hotel
#: model:ir.ui.menu,name:hotel.menu_action_hotel_room_amenities_view_form
msgid "Amenities"
-msgstr ""
+msgstr "Amenities"
#. module: hotel
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
+#: view:hotel.folio:0
+msgid "Branch"
+msgstr "Branch"
#. module: hotel
#: field:hotel.floor,name:0
msgid "Floor Name"
-msgstr ""
+msgstr "Floor Name"
#. module: hotel
#: field:product.product,iscategid:0
msgid "Is categ id"
-msgstr ""
+msgstr "Is categ id"
#. module: hotel
#: model:ir.model,name:hotel.model_hotel_room_amenities_type
msgid "amenities Type"
-msgstr ""
+msgstr "amenities Type"
#. module: hotel
-#: view:hotel.room_amenities:0
+#: view:hotel.room.amenities:0
msgid "Amenity rate"
-msgstr ""
-
-#. module: hotel
-#: field:product.category,isservicetype:0
-msgid "Is Service Type"
-msgstr ""
+msgstr "Amenity rate"
+
+#. module: hotel
+#: field:room.rent,price:0
+msgid "Room rent"
+msgstr "Room rent"
+
+#. module: hotel
+#: view:hotel.folio:0
+msgid "Automatic Declaration"
+msgstr "Automatic Declaration"
#. module: hotel
#: view:hotel.folio:0
msgid "Set to Draft"
-msgstr ""
-
-#. module: hotel
-#: rml:folio.total:0
-msgid "to"
-msgstr ""
-
-#. module: hotel
-#: wizard_view:hotel.folio.total_folio,init:0
-msgid "Folio List"
-msgstr ""
-
-#. module: hotel
+msgstr "Set to Draft"
+
+#. module: hotel
+#: model:ir.ui.menu,name:hotel.menu_hotel_service
#: model:ir.ui.menu,name:hotel.menu_open_hotel_services_form
msgid "Services"
-msgstr ""
-
-#. module: hotel
-#: view:hotel.folio:0
-msgid "Cancel Order"
-msgstr ""
-
-#. module: hotel
-#: view:hotel.folio:0
-msgid "Confirm Order"
-msgstr ""
+msgstr "Services"
+
+#. module: hotel
+#: view:hotel.room.amenities:0
+msgid "Define supplier taxes if there any on the Amenity. "
+msgstr "Define supplier taxes if there any on the Amenity. "
#. module: hotel
#: model:product.category,name:hotel.hotel_room_amenities_type_0_product_category
msgid "All Aminities"
-msgstr ""
-
-#. module: hotel
-#: view:hotel.folio:0
-msgid "Notes"
-msgstr ""
+msgstr "All Aminities"
+
+#. module: hotel
+#: selection:hotel.folio,hotel_policy:0
+msgid "On Booking"
+msgstr "On Booking"
+
+#. module: hotel
+#: view:hotel.room:0
+#: view:hotel.room.amenities:0
+msgid "Suppliers"
+msgstr "Suppliers"
#. module: hotel
#: view:hotel.floor:0
msgid " Hotel Floor"
-msgstr ""
-
-#. module: hotel
-#: rml:folio.total:0
+msgstr " Hotel Floor"
+
+#. module: hotel
+#: help:hotel.room,floor_id:0
+msgid "At which floor the room is located."
+msgstr "At which floor the room is located."
+
+#. module: hotel
+#: report:folio.total:0
msgid "Customer Name"
-msgstr ""
+msgstr "Customer Name"
#. module: hotel
#: field:product.product,isroom:0
msgid "Is Room"
-msgstr ""
+msgstr "Is Room"
#. module: hotel
#: model:product.category,name:hotel.hotel_service_type_1_product_category
msgid "Fixed"
-msgstr ""
+msgstr "Fixed"
#. module: hotel
#: model:ir.model,name:hotel.model_hotel_service_line
msgid "hotel Service line"
-msgstr ""
-
-#. module: hotel
-#: model:ir.ui.menu,name:hotel.menu_open_hotel_folio1_form_tree_all
-msgid "All Folio"
-msgstr ""
+msgstr "hotel Service line"
#. module: hotel
#: view:hotel.room:0
#: field:hotel.room,room_amenities:0
msgid "Room Amenities"
-msgstr ""
+msgstr "Room Amenities"
#. module: hotel
-#: view:hotel.service_type:0
+#: view:hotel.service.type:0
#: model:ir.actions.act_window,name:hotel.open_hotel_service_type_form_tree
#: model:ir.model,name:hotel.model_hotel_service_type
msgid "Service Type"
-msgstr ""
-
-#. module: hotel
-#: field:hotel_folio.line,order_line_id:0
+msgstr "Service Type"
+
+#. module: hotel
+#: field:hotel.folio,hotel_policy:0
+msgid "Hotel Policy"
+msgstr "Hotel Policy"
+
+#. module: hotel
+#: field:hotel.folio.line,order_line_id:0
msgid "order_line_id"
-msgstr ""
-
-#. module: hotel
-#: constraint:product.category:0
-msgid "Error ! You can not create recursive categories."
-msgstr ""
+msgstr "order_line_id"
#. module: hotel
#: model:ir.model,name:hotel.model_hotel_folio
msgid "hotel folio new"
-msgstr ""
+msgstr "hotel folio new"
#. module: hotel
#: view:hotel.folio:0
msgid "Extra Info"
-msgstr ""
+msgstr "Extra Info"
#. module: hotel
#: model:ir.actions.act_window,name:hotel.hotel_room_category_action
msgid "Rooms by Category"
-msgstr ""
+msgstr "Rooms by Category"
+
+#. module: hotel
+#: view:hotel.room:0
+msgid "List of supplier taxes if there any on the defined room. "
+msgstr "List of supplier taxes if there any on the defined room. "
#. module: hotel
#: model:product.category,name:hotel.hotel_room_amenities_type_3_product_category
msgid "Single Bed"
-msgstr ""
+msgstr "Single Bed"
#. module: hotel
#: model:ir.ui.menu,name:hotel.menu_open_hotel_service_type_form_tree
msgid "Service Types"
-msgstr ""
+msgstr "Service Types"
#. module: hotel
#: model:product.category,name:hotel.hotel_room_amenities_type_2_product_category
msgid "Tables"
-msgstr ""
+msgstr "Tables"
#. module: hotel
#: view:hotel.folio:0
+#: model:ir.ui.menu,name:hotel.menu_all_folio
msgid "Folio"
-msgstr ""
-
-#. module: hotel
-#: rml:folio.total:0
-msgid "From"
-msgstr ""
+msgstr "Folio"
#. module: hotel
#: view:hotel.folio:0
msgid "Recreate Invoice"
-msgstr ""
+msgstr "Recreate Invoice"
#. module: hotel
#: field:product.category,isamenitype:0
msgid "Is amenities Type"
-msgstr ""
+msgstr "Is amenities Type"
#. module: hotel
#: view:hotel.room:0
msgid " Room Amenities"
-msgstr ""
+msgstr " Room Amenities"
+
+#. module: hotel
+#: constraint:hotel.folio:0
+msgid "You can not allocate the same room twice!"
+msgstr "You can not allocate the same room twice!"
#. module: hotel
#: field:hotel.folio,checkin_date:0
-#: field:hotel_folio.line,checkin_date:0
+#: field:hotel.folio.line,checkin_date:0
msgid "Check In"
-msgstr ""
+msgstr "Check In"
+
+#. module: hotel
+#: view:hotel.folio:0
+#: field:hotel.folio,name:0
+msgid "Folio Number"
+msgstr "Folio Number"
#. module: hotel
#: model:ir.actions.act_window,name:hotel.hotel_amenity_category_action
#: model:ir.ui.menu,name:hotel.menu_hotel_amenity_category_action
msgid "Amenities by Category"
-msgstr ""
+msgstr "Amenities by Category"
+
+#. module: hotel
+#: view:folio.report.wizard:0
+msgid "Print"
+msgstr "Print"
#. module: hotel
#: field:hotel.services,service_id:0
msgid "Service_id"
-msgstr ""
+msgstr "Service_id"
+
+#. module: hotel
+#: field:hotel.room.amenities.type,cat_id:0
+#: field:hotel.room.type,cat_id:0
+#: field:hotel.service.type,ser_id:0
+msgid "category"
+msgstr "category"
#. module: hotel
#: view:hotel.folio:0
msgid "Invoice Lines"
-msgstr ""
-
-#. module: hotel
-#: view:hotel.folio:0
-msgid "Untaxed amount"
-msgstr ""
-
-#. module: hotel
-#: field:hotel.room_amenities_type,cat_id:0
-#: field:hotel.room_type,cat_id:0
-#: field:hotel.service_type,ser_id:0
-msgid "category"
-msgstr ""
-
-#. module: hotel
-#: view:hotel.room:0
-#: field:hotel.room,avail_status:0
+msgstr "Invoice Lines"
+
+#. module: hotel
+#: model:ir.ui.menu,name:hotel.menu_hotel_room
+msgid "Room"
+msgstr "Room"
+
+#. module: hotel
+#: view:hotel.room:0
+#: selection:hotel.room,status:0
+msgid "Available"
+msgstr "Available"
+
+#. module: hotel
+#: report:folio.total:0
+msgid "\" To \""
+msgstr "\" To \""
+
+#. module: hotel
+#: view:hotel.room:0
msgid "Room Status"
-msgstr ""
+msgstr "Room Status"
#. module: hotel
-#: field:hotel.room_amenities,room_categ_id:0
+#: field:hotel.room.amenities,room_categ_id:0
+#: model:ir.model,name:hotel.model_product_category
msgid "Product Category"
-msgstr ""
+msgstr "Product Category"
#. module: hotel
#: view:hotel.folio:0
msgid "Manual Description"
-msgstr ""
+msgstr "Manual Description"
#. module: hotel
#: model:product.category,name:hotel.hotel_service_type_0_product_category
msgid "All Services"
-msgstr ""
+msgstr "All Services"
+
+#. module: hotel
+#: view:hotel.folio:0
+msgid "---Description---"
+msgstr "---Description---"
+
+#. module: hotel
+#: field:hotel.folio,checkout_date:0
+#: field:hotel.folio.line,checkout_date:0
+msgid "Check Out"
+msgstr "Check Out"
#. module: hotel
#: view:hotel.room:0
-#: model:ir.actions.act_window,name:hotel.action_hotel_room_form
-#: model:ir.model,name:hotel.model_hotel_room
-msgid "Hotel Room"
-msgstr ""
+msgid "state"
+msgstr "state"
#. module: hotel
-#: rml:folio.total:0
+#: report:folio.total:0
msgid "Folio No."
-msgstr ""
-
-#. module: hotel
-#: view:hotel.folio:0
-msgid "Inventory Moves"
-msgstr ""
+msgstr "Folio No."
#. module: hotel
#: model:ir.ui.menu,name:hotel.hotel_configuration_menu
msgid "Configuration"
-msgstr ""
+msgstr "Configuration"
#. module: hotel
#: view:hotel.folio:0
msgid "Total amount"
-msgstr ""
+msgstr "Total amount"
#. module: hotel
#: view:hotel.floor:0
msgid " Hotel Floors"
-msgstr ""
-
-#. module: hotel
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr " Hotel Floors"
+
+#. module: hotel
+#: view:hotel.room:0
+msgid "Status"
+msgstr "Status"
+
+#. module: hotel
+#: field:res.company,additional_hours:0
+msgid "Additional Hours"
+msgstr "Additional Hours"
+
+#. module: hotel
+#: view:hotel.room:0
+#: field:hotel.room,room_rent_ids:0
+#: field:room.rent,rent_id:0
+msgid "Room Rent"
+msgstr "Room Rent"
+
+#. module: hotel
+#: report:folio.total:0
+msgid "From \""
+msgstr "From \""
#. module: hotel
#: field:hotel.folio,order_id:0
msgid "order_id"
-msgstr ""
-
-#. module: hotel
-#: field:hotel.room_amenities,amenity_rate:0
-msgid "Amenity Rate"
-msgstr ""
-
-#. module: hotel
-#: view:hotel.room:0
-#: view:hotel.room_amenities:0
+msgstr "order_id"
+
+#. module: hotel
+#: view:hotel.room:0
+msgid "Customer taxes apply on the perticular room. "
+msgstr "Customer taxes apply on the perticular room. "
+
+#. module: hotel
+#: view:hotel.folio:0
+msgid "Service Lines"
+msgstr "Service Lines"
+
+#. module: hotel
+#: view:hotel.room:0
+#: view:hotel.room.amenities:0
#: view:hotel.services:0
msgid "Procurement"
-msgstr ""
+msgstr "Procurement"
#. module: hotel
#: field:hotel.floor,sequence:0
msgid "Sequence"
-msgstr ""
+msgstr "Sequence"
#. module: hotel
#: model:ir.ui.menu,name:hotel.menu_action_hotel_room_amenities_type_view_form
msgid "Amenity Types"
-msgstr ""
+msgstr "Amenity Types"
+
+#. module: hotel
+#: view:hotel.room:0
+msgid "Delete"
+msgstr "Delete"
#. module: hotel
#: model:ir.ui.menu,name:hotel.menu_hotel_room_category_action
msgid "Room by Category"
-msgstr ""
-
-#. module: hotel
-#: field:hotel.room_amenities,rcateg_id:0
+msgstr "Room by Category"
+
+#. module: hotel
+#: field:hotel.folio,duration:0
+msgid "Duration in Days"
+msgstr "Duration in Days"
+
+#. module: hotel
+#: field:hotel.room.amenities,rcateg_id:0
msgid "Amenity Catagory"
-msgstr ""
+msgstr "Amenity Catagory"
#. module: hotel
#: view:hotel.folio:0
msgid "Other data"
-msgstr ""
+msgstr "Other data"
#. module: hotel
#: field:hotel.room,max_child:0
msgid "Max Child"
-msgstr ""
+msgstr "Max Child"
+
+#. module: hotel
+#: help:hotel.folio,service_lines:0
+msgid "Hotel services detail provide to customer and it will include in main Invoice."
+msgstr "Hotel services detail provide to customer and it will include in main Invoice."
+
+#. module: hotel
+#: help:hotel.folio,duration:0
+msgid "Number of days which will automatically count from the check-in and check-out date. "
+msgstr "Number of days which will automatically count from the check-in and check-out date. "
+
+#. module: hotel
+#: selection:hotel.folio,hotel_policy:0
+msgid "On Check In"
+msgstr "On Check In"
#. module: hotel
#: view:hotel.room:0
-#: view:hotel.room_amenities:0
+#: view:hotel.room.amenities:0
#: view:hotel.services:0
msgid "Descriptions"
-msgstr ""
-
-#. module: hotel
-#: wizard_field:hotel.folio.total_folio,init,date_start:0
+msgstr "Descriptions"
+
+#. module: hotel
+#: view:hotel.services:0
+msgid "Customer taxes applied on the service. "
+msgstr "Customer taxes applied on the service. "
+
+#. module: hotel
+#: view:hotel.services:0
+msgid "List of supplier taxes related to the service provided by hotel. "
+msgstr "List of supplier taxes related to the service provided by hotel. "
+
+#. module: hotel
+#: field:folio.report.wizard,date_start:0
msgid "Start Date"
-msgstr ""
+msgstr "Start Date"
+
+#. module: hotel
+#: selection:hotel.room,status:0
+msgid "Occupied"
+msgstr "Occupied"
#. module: hotel
#: model:ir.model,name:hotel.model_hotel_folio_line
msgid "hotel folio1 room line"
-msgstr ""
+msgstr "hotel folio1 room line"
#. module: hotel
#: field:product.category,isroomtype:0
msgid "Is Room Type"
-msgstr ""
+msgstr "Is Room Type"
#. module: hotel
-#: rml:folio.total:0
+#: report:folio.total:0
msgid "Total Collection"
-msgstr ""
+msgstr "Total Collection"
+
+#. module: hotel
+#: field:product.category,isservicetype:0
+msgid "Is Service Type"
+msgstr "Is Service Type"
#. module: hotel
#: view:hotel.folio:0
-msgid "Automatic Declaration"
-msgstr ""
+msgid "Room Lines"
+msgstr "Room Lines"
#. module: hotel
#: view:hotel.folio:0
msgid "Rent(UOM)"
-msgstr ""
+msgstr "Rent(UOM)"
#. module: hotel
#: model:ir.model,name:hotel.model_hotel_services
msgid "Hotel Services and its charges"
-msgstr ""
+msgstr "Hotel Services and its charges"
#. module: hotel
#: view:hotel.folio:0
msgid "Procurement Corrected"
-msgstr ""
+msgstr "Procurement Corrected"
#. module: hotel
#: view:hotel.folio:0
msgid "Room Line"
-msgstr ""
+msgstr "Room Line"
#. module: hotel
#: view:hotel.folio:0
msgid "Room No"
-msgstr ""
+msgstr "Room No"
#. module: hotel
#: view:hotel.services:0
msgid "Service rate"
-msgstr ""
-
-#. module: hotel
-#: model:ir.actions.act_window,name:hotel.open_hotel_folio1_form_tree
+msgstr "Service rate"
+
+#. module: hotel
+#: view:hotel.folio:0
+msgid "Folios"
+msgstr "Folios"
+
+#. module: hotel
+#: view:hotel.folio:0
#: model:ir.actions.act_window,name:hotel.open_hotel_folio1_form_tree_all
msgid "Hotel Folio"
-msgstr ""
+msgstr "Hotel Folio"
+
+#. module: hotel
+#: view:hotel.room:0
+msgid "í"
+msgstr "í"
+
+#. module: hotel
+#: help:hotel.room,room_amenities:0
+msgid "List of room amenities. "
+msgstr "List of room amenities. "
#. module: hotel
#: field:hotel.folio,room_lines:0
#: field:hotel.folio,service_lines:0
msgid "unknown"
-msgstr ""
+msgstr "unknown"
#. module: hotel
#: view:hotel.folio:0
msgid "Guest Name"
-msgstr ""
+msgstr "Guest Name"
+
+#. module: hotel
+#: view:hotel.room:0
+#: view:hotel.room.amenities:0
+#: view:hotel.services:0
+msgid "Customer Taxes"
+msgstr "Customer Taxes"
#. module: hotel
#: view:hotel.folio:0
msgid "Service Line"
-msgstr ""
+msgstr "Service Line"
#. module: hotel
-#: view:hotel.room_amenities_type:0
+#: view:hotel.room.amenities.type:0
#: model:ir.actions.act_window,name:hotel.action_hotel_room_amenities_type_view_form
msgid "Hotel Room Amenities Type"
-msgstr ""
+msgstr "Hotel Room Amenities Type"
#. module: hotel
#: view:hotel.folio:0
msgid "Folio Line"
-msgstr ""
-
-#. module: hotel
-#: view:hotel.folio:0
-msgid "Date"
-msgstr ""
-
-#. module: hotel
-#: view:hotel.folio:0
-#: view:hotel.room:0
-#: view:hotel.room_amenities:0
-#: view:hotel.services:0
-msgid "Properties"
-msgstr ""
-
-#. module: hotel
-#: view:hotel.room_amenities:0
+msgstr "Folio Line"
+
+#. module: hotel
+#: model:res.groups,name:hotel.group_hotel_user
+msgid "Hotel Management / User"
+msgstr "Hotel Management / User"
+
+#. module: hotel
+#: model:product.category,name:hotel.hotel_service_type_2_product_category
+msgid "Variable"
+msgstr "Variable"
+
+#. module: hotel
+#: help:hotel.folio,hotel_policy:0
+msgid "Hotel policy for payment that either the guest has to payment at booking time or check-in check-out time."
+msgstr "Hotel policy for payment that either the guest has to payment at booking time or check-in check-out time."
+
+#. module: hotel
+#: view:hotel.room.amenities:0
#: view:hotel.services:0
msgid "Purchase Description"
-msgstr ""
+msgstr "Purchase Description"
#. module: hotel
#: view:hotel.folio:0
msgid "Compute"
-msgstr ""
+msgstr "Compute"
#. module: hotel
#: model:ir.model,name:hotel.model_hotel_room_amenities
msgid "Room amenities"
-msgstr ""
+msgstr "Room amenities"
#. module: hotel
#: model:product.category,name:hotel.hotel_room_type_3_product_category
msgid "No Room"
-msgstr ""
-
-#. module: hotel
-#: field:hotel_service.line,service_line_id:0
+msgstr "No Room"
+
+#. module: hotel
+#: model:ir.model,name:hotel.model_res_company
+msgid "Companies"
+msgstr "Companies"
+
+#. module: hotel
+#: field:hotel.service.line,service_line_id:0
msgid "service_line_id"
-msgstr ""
+msgstr "service_line_id"
+
+#. module: hotel
+#: view:hotel.room:0
+msgid "Status:"
+msgstr "Status:"
+
+#. module: hotel
+#: model:ir.model,name:hotel.model_folio_report_wizard
+msgid "folio.report.wizard"
+msgstr "folio.report.wizard"
#. module: hotel
#: model:product.category,name:hotel.hotel_room_amenities_type_1_product_category
msgid "Beds"
-msgstr ""
+msgstr "Beds"
#. module: hotel
-#: model:product.category,name:hotel.hotel_service_type_2_product_category
-msgid "Variable"
-msgstr ""
+#: view:hotel.room:0
+msgid "Available Rooms"
+msgstr "Available Rooms"
#. module: hotel
#: field:hotel.room,floor_id:0
msgid "Floor No"
-msgstr ""
+msgstr "Floor No"
#. module: hotel
#: view:hotel.services:0
#: model:ir.actions.act_window,name:hotel.action_hotel_services_form
msgid "Hotel Services"
-msgstr ""
+msgstr "Hotel Services"
#. module: hotel
-#: view:hotel.room_amenities:0
+#: view:hotel.room.amenities:0
#: model:ir.actions.act_window,name:hotel.action_hotel_room_amenities_view_form
msgid "Hotel Room Amenities"
-msgstr ""
+msgstr "Hotel Room Amenities"
+
+#. module: hotel
+#: view:hotel.room:0
+msgid "Rate:"
+msgstr "Rate:"
#. module: hotel
#: view:hotel.folio:0
msgid "History"
-msgstr ""
+msgstr "History"
+
+#. module: hotel
+#: view:hotel.room.amenities:0
+#: model:ir.ui.menu,name:hotel.menu_amenity
+msgid "Amenity"
+msgstr "Amenity"
#. module: hotel
#: model:ir.actions.act_window,name:hotel.open_hotel_floor_form_tree
msgid "Floor Structure"
-msgstr ""
-
-#. module: hotel
-#: rml:folio.total:0
+msgstr "Floor Structure"
+
+#. module: hotel
+#: view:hotel.room.amenities:0
+msgid "List of customer taxes applied on the Amenity. "
+msgstr "List of customer taxes applied on the Amenity. "
+
+#. module: hotel
+#: report:folio.total:0
msgid "Net Total :-"
-msgstr ""
+msgstr "Net Total :-"
#. module: hotel
#: view:hotel.folio:0
msgid "Related invoices"
-msgstr ""
-
-#. module: hotel
-#: selection:hotel.room,avail_status:0
-msgid "Assigned"
-msgstr ""
-
-#. module: hotel
-#: selection:hotel.room,avail_status:0
-msgid "Unassigned"
-msgstr ""
-
-#. module: hotel
-#: model:ir.module.module,shortdesc:hotel.module_meta_information
+msgstr "Related invoices"
+
+#. module: hotel
#: model:ir.ui.menu,name:hotel.hotel_management_menu
msgid "Hotel Management"
-msgstr ""
+msgstr "Hotel Management"
#. module: hotel
-#: wizard_button:hotel.folio.total_folio,init,end:0
+#: view:folio.report.wizard:0
msgid "Cancel"
-msgstr ""
+msgstr "Cancel"
#. module: hotel
#: view:hotel.room:0
-#: view:hotel.room_amenities:0
+#: view:hotel.room.amenities:0
#: view:hotel.services:0
msgid "Information"
-msgstr ""
+msgstr "Information"
#. module: hotel
-#: constraint:ir.model:0
-msgid "The Object name must start with x_ and not contain any special character !"
-msgstr ""
+#: view:hotel.room:0
+msgid "-->"
+msgstr "-->"
#. module: hotel
#: field:hotel.room,product_id:0
msgid "Product_id"
-msgstr ""
-
-#. module: hotel
-#: view:hotel.folio:0
-msgid "Hotel Folio1"
-msgstr ""
+msgstr "Product_id"
#. module: hotel
#: view:hotel.room:0
#: model:ir.model,name:hotel.model_hotel_floor
#: model:ir.ui.menu,name:hotel.menu_open_hotel_floor_form_tree
msgid "Floor"
-msgstr ""
+msgstr "Floor"
+
+#. module: hotel
+#: model:ir.model,name:hotel.model_room_rent
+msgid "room.rent"
+msgstr "room.rent"
#. module: hotel
#: model:product.category,name:hotel.hotel_room_type_0_product_category
msgid "All Rooms"
-msgstr ""
+msgstr "All Rooms"
#. module: hotel
#: view:hotel.folio:0
msgid "Create Invoice"
-msgstr ""
-
-#. module: hotel
-#: wizard_button:hotel.folio.total_folio,init,print_report:0
-msgid "Print Report"
-msgstr ""
+msgstr "Create Invoice"
#. module: hotel
#: model:ir.actions.report.xml,name:hotel.hotel_folio_details
-#: model:ir.actions.wizard,name:hotel.wizard_hotel_total
msgid "Folio Total"
-msgstr ""
-
-#. module: hotel
-#: model:ir.actions.act_window,name:hotel.open_hotel_room_type_form_tree
-#: model:ir.model,name:hotel.model_hotel_room_type
-msgid "Room Type"
-msgstr ""
-
-#. module: hotel
-#: view:hotel.room:0
-#: view:hotel.room_amenities:0
+msgstr "Folio Total"
+
+#. module: hotel
+#: field:hotel.room,room_reservation_line_ids:0
+msgid "Room Reservation Line"
+msgstr "Room Reservation Line"
+
+#. module: hotel
+#: help:res.company,additional_hours:0
+msgid "Provide the min hours value for check in checkout days, whatever the hours will be provided here based on that extra days will be calculated."
+msgstr "Provide the min hours value for check in checkout days, whatever the hours will be provided here based on that extra days will be calculated."
+
+#. module: hotel
+#: view:hotel.room:0
+msgid "occupied"
+msgstr "occupied"
+
+#. module: hotel
+#: model:ir.actions.act_window,name:hotel.hotel_folio_wizard
+msgid "Hotel Folio Wizard"
+msgstr "Hotel Folio Wizard"
+
+#. module: hotel
+#: model:ir.model,name:hotel.model_product_product
+msgid "Product"
+msgstr "Product"
+
+#. module: hotel
+#: view:hotel.room:0
+#: view:hotel.room.amenities:0
#: view:hotel.services:0
msgid "Description"
-msgstr ""
-
-#. module: hotel
-#: field:hotel_folio.line,folio_id:0
-#: field:hotel_service.line,folio_id:0
+msgstr "Description"
+
+#. module: hotel
+#: sql_constraint:hotel.folio:0
+msgid "Check in Date Should be less than the Check Out Date!"
+msgstr "Check in Date Should be less than the Check Out Date!"
+
+#. module: hotel
+#: field:hotel.folio.line,folio_id:0
+#: field:hotel.service.line,folio_id:0
msgid "folio_id"
-msgstr ""
+msgstr "folio_id"
#. module: hotel
-#: view:hotel.room_amenities:0
+#: view:hotel.room.amenities:0
#: view:hotel.services:0
msgid "Sale Description"
-msgstr ""
+msgstr "Sale Description"
#. module: hotel
#: model:product.category,name:hotel.hotel_room_amenities_type_4_product_category
msgid "Double Bed"
-msgstr ""
+msgstr "Double Bed"
#. module: hotel
#: field:product.product,isservice:0
msgid "Is Service id"
-msgstr ""
+msgstr "Is Service id"
+
+#. module: hotel
+#: view:hotel.services:0
+msgid "Suplliers"
+msgstr "Suplliers"
#. module: hotel
#: model:ir.ui.menu,name:hotel.menu_open_hotel_room_type_form_tree
msgid "Room Types"
-msgstr ""
-
-#. module: hotel
-#: rml:folio.total:0
+msgstr "Room Types"
+
+#. module: hotel
+#: view:hotel.folio:0
+msgid "Untaxed amount"
+msgstr "Untaxed amount"
+
+#. module: hotel
+#: report:folio.total:0
msgid "CheckOut"
-msgstr ""
+msgstr "CheckOut"
#. module: hotel
#: model:ir.actions.act_window,name:hotel.hotel_service_category_action
#: model:ir.ui.menu,name:hotel.menu_hotel_service_category_action
msgid "Services by Category"
-msgstr ""
+msgstr "Services by Category"
#. module: hotel
-#: model:ir.ui.menu,name:hotel.menu_open_hotel_room_form
-msgid "Rooms"
-msgstr ""
+#: view:hotel.folio:0
+msgid "Cancel Folio"
+msgstr "Cancel Folio"
#. module: hotel
#: view:hotel.room:0
msgid "Room rate"
-msgstr ""
+msgstr "Room rate"
#. module: hotel
-#: wizard_field:hotel.folio.total_folio,init,date_end:0
+#: field:folio.report.wizard,date_end:0
msgid "End Date"
-msgstr ""
+msgstr "End Date"
+
+#. module: hotel
+#: model:res.groups,name:hotel.group_hotel_manager
+msgid "Hotel Management/ Manager"
+msgstr "Hotel Management/ Manager"
+
+#. module: hotel
+#: view:hotel.room:0
+msgid "Name"
+msgstr "Name"
+
+#. module: hotel
+#: view:folio.report.wizard:0
+msgid "Folio Report"
+msgstr "Folio Report"
+
+#. module: hotel
+#: view:hotel.room:0
+msgid "Edit"
+msgstr "Edit"
#. module: hotel
#: model:product.category,name:hotel.hotel_room_type_2_product_category
msgid "Double"
-msgstr ""
+msgstr "Double"
#. module: hotel
-#: rml:folio.total:0
+#: report:folio.total:0
msgid "CheckIn"
-msgstr ""
+msgstr "CheckIn"
#. module: hotel
#: field:hotel.room,max_adult:0
msgid "Max Adult"
-msgstr ""
+msgstr "Max Adult"
#. module: hotel
-#: model:ir.module.module,description:hotel.module_meta_information
-msgid "\n"
-" Module for Hotel/Resort/Property management. You can manage:\n"
-" * Configure Property\n"
-" * Hotel Configuration\n"
-" * Check In, Check out\n"
-" * Manage Folio\n"
-" * Payment\n"
-"\n"
-" Different reports are also provided, mainly for hotel statistics.\n"
-" "
-msgstr ""
+#: model:ir.actions.act_window,name:hotel.open_hotel_room_type_form_tree
+#: model:ir.model,name:hotel.model_hotel_room_type
+msgid "Room Type"
+msgstr "Room Type"
#. module: hotel
#: model:ir.ui.menu,name:hotel.hotel_report_menu
msgid "Reports"
-msgstr ""
-
-#. module: hotel
-#: view:hotel.folio:0
-msgid "Related packings"
-msgstr ""
-
-#. module: hotel
-#: view:hotel.folio:0
-msgid "Folio No"
-msgstr ""
-
-#. module: hotel
-#: view:hotel.room_type:0
+msgstr "Reports"
+
+#. module: hotel
+#: view:hotel.room.amenities:0
+#: view:hotel.services:0
+msgid "Catagory"
+msgstr "Catagory"
+
+#. module: hotel
+#: field:room.rent,day:0
+msgid "Weekday"
+msgstr "Weekday"
+
+#. module: hotel
+#: model:ir.ui.menu,name:hotel.menu_open_hotel_room_form
+msgid "Rooms"
+msgstr "Rooms"
+
+#. module: hotel
+#: view:hotel.room.type:0
msgid " Hotel Room Type"
-msgstr ""
+msgstr " Hotel Room Type"
#. module: hotel
#: view:hotel.folio:0
msgid "Invoice Corrected"
-msgstr ""
+msgstr "Invoice Corrected"
+
+#. module: hotel
+#: selection:hotel.folio,hotel_policy:0
+msgid "On Checkout"
+msgstr "On Checkout"
#. module: hotel
#: model:ir.ui.menu,name:hotel.wizard_hotel_menu
msgid "Hotel Folio Report"
-msgstr ""
+msgstr "Hotel Folio Report"
+
+#. module: hotel
+#: view:hotel.folio:0
+msgid "Confirm Folio"
+msgstr "Confirm Folio"
#. module: hotel
#: view:hotel.folio:0
msgid "States"
-msgstr ""
+msgstr "States"
#. module: hotel
#: model:product.category,name:hotel.hotel_room_type_1_product_category
msgid "Single"
-msgstr ""
+msgstr "Single"
#. module: hotel
-#: constraint:product.product:0
-msgid "Error: Invalid ean code"
-msgstr ""
+#: field:hotel.room,status:0
+msgid "status"
+msgstr "status"
#. module: hotel
#: view:hotel.folio:0
msgid "Rent"
-msgstr ""
+msgstr "Rent"
#. module: hotel
-#: rml:folio.total:0
+#: report:folio.total:0
msgid "Total"
-msgstr ""
+msgstr "Total"
+
+#. module: hotel
+#: view:hotel.room:0
+#: view:hotel.room.amenities:0
+#: view:hotel.services:0
+msgid "Supplier Taxes"
+msgstr "Supplier Taxes"
=== modified file 'hotel/i18n/hr.po' (properties changed: -x to +x)
=== modified file 'hotel/i18n/sv.po' (properties changed: -x to +x)
=== modified file 'hotel/report/__init__.py'
--- hotel/report/__init__.py 2012-05-22 14:06:57 +0000
+++ hotel/report/__init__.py 2014-04-18 16:01:07 +0000
@@ -1,24 +1,25 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import hotel_report
+from . import hotel_report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel/report/hotel_report.py'
--- hotel/report/hotel_report.py 2012-05-23 07:17:58 +0000
+++ hotel/report/hotel_report.py 2014-04-18 16:01:07 +0000
@@ -1,53 +1,52 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
import time
-from report import report_sxw
-import datetime
-import pooler
+from openerp.report import report_sxw
+
class folio_report(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(folio_report, self).__init__(cr, uid, name, context)
self.localcontext.update( {
'time': time,
'get_data': self.get_data,
- 'get_Total' : self.getTotal,
+ 'get_Total': self.getTotal,
'get_total': self.gettotal,
})
self.temp = 0.0
- def get_data(self,date_start,date_end):
- tids = self.pool.get('hotel.folio').search(self.cr,self.uid,[('checkin_date', '>=', date_start),('checkout_date', '<=', date_end)])
- res = self.pool.get('hotel.folio').browse(self.cr,self.uid,tids)
+ def get_data(self, date_start, date_end):
+ folio_obj = self.pool.get('hotel.folio')
+ tids = folio_obj.search(self.cr, self.uid, [('checkin_date', '>=', date_start), ('checkout_date', '<=', date_end)])
+ res = folio_obj.browse(self.cr, self.uid, tids)
return res
-
- def gettotal(self,total):
+
+ def gettotal(self, total):
self.temp = self.temp + float(total)
return total
-
+
def getTotal(self):
return self.temp
-
-report_sxw.report_sxw('report.folio.total', 'hotel.folio', 'addons/hotel/report/total_folio.rml',parser= folio_report)
-
-
+
+report_sxw.report_sxw('report.folio.total', 'hotel.folio', 'addons/hotel/report/total_folio.rml', parser=folio_report)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel/report/hotel_report.xml'
--- hotel/report/hotel_report.xml 2012-05-23 07:17:58 +0000
+++ hotel/report/hotel_report.xml 2014-04-18 16:01:07 +0000
@@ -1,6 +1,7 @@
<?xml version="1.0"?>
<openerp>
<data>
+
<report id="hotel_folio_details"
string="Folio Total"
model="hotel.folio"
=== modified file 'hotel/report/total_folio.rml'
--- hotel/report/total_folio.rml 2012-05-22 14:06:57 +0000
+++ hotel/report/total_folio.rml 2014-04-18 16:01:07 +0000
@@ -13,6 +13,7 @@
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
+ <lineStyle kind="GRID" colorName="black"/>
<blockBackground colorName="#c0c0c0" start="0,0" stop="0,0"/>
<blockBackground colorName="#c0c0c0" start="1,0" stop="1,0"/>
<blockBackground colorName="#c0c0c0" start="2,0" stop="2,0"/>
@@ -22,6 +23,7 @@
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
+ <lineStyle kind="GRID" colorName="black"/>
<blockBackground colorName="#ffffff" start="0,0" stop="0,0"/>
<blockBackground colorName="#c0c0c0" start="1,0" stop="1,0"/>
</blockTableStyle>
@@ -52,9 +54,21 @@
<para style="P2">
<font color="white"> </font>
</para>
- <para style="P9">Total Collection</para>
+ <para style="P2">
+ <font color="white"> </font>
+ </para>
+ <para style="P2">
+ <font color="white"> </font>
+ </para>
+ <para style="P9" alignment="CENTER"><b>Total Collection</b></para>
+ <para style="P2">
+ <font color="white"> </font>
+ </para>
<para style="P10">[[repeatIn(objects,'o')]]</para>
- <para style="P12">From [[ data['form']['date_start'] ]] to [[ data['form']['date_end'] ]] </para>
+ <para style="P12"><b>From "</b>[[ formatLang(data['form']['date_start'],date=True) ]]<b>" To "</b>[[ formatLang(data['form']['date_end'],date=True) ]]<b>"</b></para>
+ <para style="P4">
+ <font color="white"> </font>
+ </para>
<blockTable colWidths="90.0,129.0,98.0,96.0,69.0" style="Table1">
<tr>
<td>
@@ -74,27 +88,25 @@
</td>
</tr>
<tr>
- <td>
- <para style="P6">[[ repeatIn(get_data(data['form']['date_start'],data['form']['date_end']) ,'o') ]]</para>
- <para style="P4">[[o.order_id.name]]</para>
- </td>
- <td>
- <para style="P4">[[o.partner_id.name]]</para>
- </td>
- <td>
- <para style="P4">[[o.checkin_date]]</para>
- </td>
- <td>
- <para style="P4">[[o.checkout_date]]</para>
- </td>
- <td>
- <para style="P4">[[o.amount_total]]</para>
-
- <para style="P4">[[get_total(o.amount_total)]]</para>
+ <para style="P6">[[ repeatIn(get_data(data['form']['date_start'],data['form']['date_end']) ,'o') ]]</para>
+ <td>
+ <para style="P4">[[o.name or '' ]]</para>
+ </td>
+ <td>
+ <para style="P4" alignment="LEFT">[[o.partner_id and o.partner_id.name or '']]</para>
+ </td>
+ <td>
+ <para style="P4">[[ formatLang(o.checkin_date, date=True) ]]</para>
+ </td>
+ <td>
+ <para style="P4">[[ formatLang(o.checkout_date, date=True) ]]</para>
+ </td>
+ <td>
+ <para style="P4" alignment="RIGHT">[[formatLang(get_total(o.amount_total), digits=get_digits(dp='Account')) ]]</para>
</td>
</tr>
</blockTable>
- <blockTable colWidths="316.0,96.0,69.0" style="Table2">
+ <blockTable colWidths="317.0,96.0,69.0" style="Table2">
<tr>
<td>
<para style="P8">
@@ -105,7 +117,7 @@
<para style="P7">Net Total :-</para>
</td>
<td>
- <para style="P4">[[get_Total()]]</para>
+ <para style="P4" alignment="RIGHT">[[formatLang(get_Total(), digits=get_digits(dp='Account')) ]]</para>
</td>
</tr>
</blockTable>
=== modified file 'hotel/security/ir.model.access.csv'
--- hotel/security/ir.model.access.csv 2012-05-22 14:06:57 +0000
+++ hotel/security/ir.model.access.csv 2014-04-18 16:01:07 +0000
@@ -1,13 +1,34 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hotel_floor_group","hotel.floor","model_hotel_floor","hotel.group_hotel_user",1,1,0,0
-"access_product_category","product.category","product.model_product_category","hotel.group_hotel_user",1,1,0,0
-"access_hotel_room_type","hotel.room_type","model_hotel_room_type","hotel.group_hotel_user",1,1,0,0
-"access_product_product","product.product","product.model_product_product","hotel.group_hotel_user",1,1,1,1
-"access_hotel_room_amenities_type","hotel.room_amenities_type","model_hotel_room_amenities_type","hotel.group_hotel_user",1,1,0,0
-"access_hotel_room_amenities","hotel.room_aminities","model_hotel_room_amenities","hotel.group_hotel_user",1,1,0,0
-"access_hotel_room","hotel.room","model_hotel_room","hotel.group_hotel_user",1,1,0,0
-"access_hotel_folio","hotel.folio","model_hotel_folio","hotel.group_hotel_user",1,1,1,1
-"access_hotel_folio_line","hotel_folio.line","model_hotel_folio_line","hotel.group_hotel_user",1,1,1,1
-"access_hotel_service_line","hotel_service.line","model_hotel_service_line","hotel.group_hotel_user",1,1,1,1
-"acess_hotel_service_type","hotel.service_type","model_hotel_service_type","hotel.group_hotel_user",1,1,0,0
-"access_hotel_services","hotel.sevices","model_hotel_services","hotel.group_hotel_user",1,1,0,0
+"access_hotel_floor_group","hotel.floor.user","model_hotel_floor","hotel.group_hotel_user",1,1,1,0
+"access_product_category","product.category.user","product.model_product_category","hotel.group_hotel_user",1,1,1,0
+"access_hotel_room_type","hotel.room_type.user","model_hotel_room_type","hotel.group_hotel_user",1,1,1,0
+"access_hotel_room_rent","hotel.room_rent.user","model_room_rent","hotel.group_hotel_user",1,1,1,0
+"access_product_product","product.product.user","product.model_product_product","hotel.group_hotel_user",1,1,1,0
+"access_hotel_room_amenities_type","hotel.room_amenities_type.user","model_hotel_room_amenities_type","hotel.group_hotel_user",1,1,1,0
+"access_hotel_room_amenities","hotel.room_aminities.user","model_hotel_room_amenities","hotel.group_hotel_user",1,1,1,0
+"access_hotel_room","hotel.room.user","model_hotel_room","hotel.group_hotel_user",1,1,1,0
+"access_hotel_folio","hotel.folio.user","model_hotel_folio","hotel.group_hotel_user",1,1,1,0
+"access_hotel_folio_line","hotel_folio.line.user","model_hotel_folio_line","hotel.group_hotel_user",1,1,1,0
+"access_hotel_service_line","hotel_service.line.user","model_hotel_service_line","hotel.group_hotel_user",1,1,1,0
+"acess_hotel_service_type","hotel.service_type.user","model_hotel_service_type","hotel.group_hotel_user",1,1,1,0
+"access_hotel_services","hotel.sevices.user","model_hotel_services","hotel.group_hotel_user",1,1,1,0
+"access_hotel_order_user","hotel.order.user","sale.model_sale_order","hotel.group_hotel_user",1,1,1,0
+"access_hotel_order_line_user","hotel.order.line.user","sale.model_sale_order_line","hotel.group_hotel_user",1,1,1,0
+"access_hotel_invoice_user","account.invoice.user","account.model_account_invoice","hotel.group_hotel_user",1,1,1,0
+
+"access_hotel_floor_group_manager","hotel.floor.manager","model_hotel_floor","hotel.group_hotel_manager",1,1,1,1
+"access_product_category_manager","product.category.manager","product.model_product_category","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_room_type_manager","hotel.room_type.manager","model_hotel_room_type","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_room_rent_manager","hotel.room_rent.manager","model_room_rent","hotel.group_hotel_manager",1,1,1,1
+"access_product_product_manager","product.product.manager","product.model_product_product","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_room_amenities_type_manager","hotel.room_amenities_type.manager","model_hotel_room_amenities_type","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_room_amenities_manager","hotel.room_aminities.manager","model_hotel_room_amenities","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_room_manager","hotel.room.manager","model_hotel_room","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_folio_manager","hotel.folio.manager","model_hotel_folio","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_folio_line_manager","hotel_folio.line.manager","model_hotel_folio_line","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_service_line_manager","hotel_service.line.manager","model_hotel_service_line","hotel.group_hotel_manager",1,1,1,1
+"acess_hotel_service_type_manager","hotel.service_type.manager","model_hotel_service_type","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_services_manager","hotel.sevices.manager","model_hotel_services","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_order_manager_manager","hotel.order.manager","sale.model_sale_order","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_order_line_manager","hotel.order.line.manager","sale.model_sale_order_line","hotel.group_hotel_manager",1,1,1,0
+"access_hotel_invoice_manager","account.invoice.manager","account.model_account_invoice","hotel.group_hotel_manager",1,1,1,1
\ No newline at end of file
=== added directory 'hotel/static/src/css'
=== added file 'hotel/static/src/css/room_kanban.css'
--- hotel/static/src/css/room_kanban.css 1970-01-01 00:00:00 +0000
+++ hotel/static/src/css/room_kanban.css 2014-04-18 16:01:07 +0000
@@ -0,0 +1,4 @@
+.openerp .oe_kanban_view .oe_kanban_status {
+ position: relative;
+ top: -13px;
+}
\ No newline at end of file
=== modified file 'hotel/wizard/__init__.py'
--- hotel/wizard/__init__.py 2012-05-22 14:06:57 +0000
+++ hotel/wizard/__init__.py 2014-04-18 16:01:07 +0000
@@ -1,24 +1,25 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import hotel_wizard
+from . import hotel_wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel/wizard/hotel_wizard.py'
--- hotel/wizard/hotel_wizard.py 2012-05-23 07:17:58 +0000
+++ hotel/wizard/hotel_wizard.py 2014-04-18 16:01:07 +0000
@@ -1,50 +1,45 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-from osv import osv,fields
-
-class folio_report_wizard(osv.osv_memory):
-
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
+#
+################################################################################
+
+from openerp.osv import osv, fields
+
+class folio_report_wizard(osv.TransientModel):
_name = 'folio.report.wizard'
-
_rec_name = 'date_start'
_columns = {
- 'date_start':fields.datetime('Start Date'),
- 'date_end':fields.datetime('End Date')
- }
-
+ 'date_start': fields.datetime('Start Date'),
+ 'date_end': fields.datetime('End Date')
+ }
+
def print_report(self, cr, uid, ids, context=None):
- datas = {
- 'ids': ids,
- 'model': 'hotel.folio',
- 'form': self.read(cr, uid, ids)[0]
+ values = {
+ 'ids': ids,
+ 'model': 'hotel.folio',
+ 'form': self.read(cr, uid, ids, context=context)[0]
}
return {
'type': 'ir.actions.report.xml',
'report_name': 'folio.total',
- 'datas': datas,
+ 'datas': values,
}
-
-folio_report_wizard()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel/wizard/hotel_wizard.xml'
--- hotel/wizard/hotel_wizard.xml 2012-05-23 07:17:58 +0000
+++ hotel/wizard/hotel_wizard.xml 2014-04-18 16:01:07 +0000
@@ -1,37 +1,39 @@
<?xml version="1.0" ?>
<openerp>
- <data>
-
- <record model="ir.ui.view" id="view_hotel_folio_wizard">
- <field name="name">folio.report.wizard</field>
- <field name="model">folio.report.wizard</field>
- <field name="type">form</field>
- <field name="arch" type="xml">
- <form string="Folio Report">
- <field name="date_start" required="1"/>
- <field name="date_end" required="1"/>
- <newline/>
- <separator colspan='4'/>
- <newline/>
- <button icon="gtk-cancel" string="Cancel" special="cancel"/>
- <button icon="gtk-print" name="print_report" string="Print" type="object"/>
- </form>
- </field>
- </record>
-
- <record model="ir.actions.act_window" id="hotel_folio_wizard">
- <field name="name">Hotel Folio Wizard</field>
- <field name="res_model">folio.report.wizard</field>
- <field name="view_type">form</field>
- <field name="view_mode">form</field>
- <field name="target">new</field>
- </record>
-
- <menuitem
- name="Hotel Folio Report"
- action="hotel_folio_wizard"
- id="wizard_hotel_menu"
- parent="hotel_report_menu"
- sequence="31"/>
- </data>
-</openerp>
+ <data>
+
+ <record model="ir.ui.view" id="view_hotel_folio_wizard">
+ <field name="name">folio.report.wizard</field>
+ <field name="model">folio.report.wizard</field>
+ <field name="arch" type="xml">
+ <form string="Folio Report" version="7.0">
+ <group col="4">
+ <field name="date_start" required="1"/>
+ <field name="date_end" required="1"/>
+ </group>
+ <footer>
+ <button name="print_report" string="Print Folio" type="object" class="oe_highlight"/>
+ or
+ <button string="Cancel" class="oe_link" special="cancel"/>
+ </footer>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.actions.act_window" id="hotel_folio_wizard">
+ <field name="name">Hotel Folio Wizard</field>
+ <field name="res_model">folio.report.wizard</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">form</field>
+ <field name="target">new</field>
+ </record>
+
+ <menuitem
+ name="Hotel Folio Report"
+ action="hotel_folio_wizard"
+ id="wizard_hotel_menu"
+ parent="hotel_report_menu"
+ sequence="31"/>
+
+ </data>
+</openerp>
\ No newline at end of file
=== added directory 'hotel_housekeeping/Doc'
=== added file 'hotel_housekeeping/Doc/ChangeLog.txt'
--- hotel_housekeeping/Doc/ChangeLog.txt 1970-01-01 00:00:00 +0000
+++ hotel_housekeeping/Doc/ChangeLog.txt 2014-04-18 16:01:07 +0000
@@ -0,0 +1,17 @@
+============================================================================================================================
+ Version Change Log (hotel_housekeeping)
+============================================================================================================================
+0.05 on 2014-04-04 by Dhwani
+ * Standardized the module as per v7 standards.
+
+0.04 on 2014-01-11 by Krunal Soni
+ * Checked code quality and improved report format.
+
+0.03 on 2014-01-07 by Krunal Soni
+ * Added Accurate licensing terms and Copyright(C) on top inside license info in each py file.
+
+0.02 on 2013-11-13 by Sudhir Arya
+ * Standardized the module as per v7 standards.
+
+1.01 --> Oct 1,2013 : Anil Kesariya
+ * Added Access control for manager user Improved label name.
\ No newline at end of file
=== modified file 'hotel_housekeeping/__init__.py'
--- hotel_housekeeping/__init__.py 2012-05-18 07:39:13 +0000
+++ hotel_housekeeping/__init__.py 2014-04-18 16:01:07 +0000
@@ -1,26 +1,27 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import hotel_housekeeping
-import wizard
-import report
+from . import hotel_housekeeping
+from . import wizard
+from . import report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== modified file 'hotel_housekeeping/__openerp__.py'
--- hotel_housekeeping/__openerp__.py 2012-05-23 07:17:58 +0000
+++ hotel_housekeeping/__openerp__.py 2014-04-18 16:01:07 +0000
@@ -1,29 +1,29 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-
{
"name" : "Hotel Housekeeping Management",
- "version" : "1.0",
- "author" : "Tiny",
+ "version" : "0.05",
+ "author": ["Serpent Consulting Services Pvt. Ltd.", "OpenERP SA" ],
"category" : "Generic Modules/Hotel Housekeeping",
"description": """
Module for Hotel/Hotel Housekeeping. You can manage:
@@ -32,19 +32,19 @@
Different reports are also provided, mainly for hotel statistics.
""",
+ "website": ["http://www.serpentcs.com", "http://www.openerp.com"],
"depends" : ["hotel"],
- "init_xml" : [],
- "demo_xml" : ["hotel_housekeeping_data.xml",
- ],
- "update_xml" : [
- "hotel_housekeeping_view.xml",
- "hotel_housekeeping_workflow.xml",
- "report/hotel_housekeeping_report.xml",
- "wizard/hotel_housekeeping_wizard.xml",
- "security/ir.model.access.csv",
- ],
- "active": False,
- "installable": True
+ "demo" : ["hotel_housekeeping_data.xml",
+ ],
+ "data" : [
+ "security/ir.model.access.csv",
+ "report/hotel_housekeeping_report.xml",
+ "wizard/hotel_housekeeping_wizard.xml",
+ "hotel_housekeeping_workflow.xml",
+ "hotel_housekeeping_view.xml",
+ ],
+ 'installable': True,
+ 'auto_install': False,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_housekeeping/hotel_housekeeping.py'
--- hotel_housekeeping/hotel_housekeeping.py 2012-05-22 14:06:57 +0000
+++ hotel_housekeeping/hotel_housekeeping.py 2014-04-18 16:01:07 +0000
@@ -1,136 +1,132 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-from osv import fields,osv
+from openerp.osv import fields, osv
import time
-import netsvc
+from openerp import netsvc
-class product_category(osv.osv):
+class product_category(osv.Model):
_inherit = "product.category"
_columns = {
- 'isactivitytype':fields.boolean('Is Activity Type'),
+ 'isactivitytype': fields.boolean('Is Activity Type'),
}
_defaults = {
'isactivitytype': lambda *a: True,
}
-product_category()
-class hotel_housekeeping_activity_type(osv.osv):
+class hotel_housekeeping_activity_type(osv.Model):
_name = 'hotel.housekeeping.activity.type'
_description = 'Activity Type'
_inherits = {'product.category':'activity_id'}
-
- _columns = {
- 'activity_id':fields.many2one('product.category','category',required=True,ondelete='cascade'),
- }
-
-hotel_housekeeping_activity_type()
-
-class product_product(osv.osv):
- _inherit = "product.product"
- _columns = {
- 'isact':fields.boolean('Is Activity'),
- }
-product_product()
-
-class h_activity(osv.osv):
+ _columns = {
+ 'activity_id': fields.many2one('product.category', 'Category', required=True, ondelete='cascade'),
+ }
+
+# class product_product(osv.Model):
+# _inherit = "product.product"
+# _columns = {
+# 'isact':fields.boolean('Is Activity'),
+# }
+
+class h_activity(osv.Model):
_name = 'h.activity'
- _inherits = {'product.product':'h_id'}
+ _inherits = {'product.product': 'h_id'}
_description = 'Housekeeping Activity'
-
_columns = {
- 'h_id': fields.many2one('product.product','Product'),
+ 'h_id': fields.many2one('product.product', 'Product', required=True, ondelete='cascade'),
}
-h_activity()
-
-
-class hotel_housekeeping(osv.osv):
+
+class hotel_housekeeping(osv.Model):
_name = "hotel.housekeeping"
_description = "Reservation"
-
_columns = {
- 'current_date':fields.date("Today's Date",required=True),
- 'clean_type':fields.selection([('daily','Daily'),('checkin','Check-in'),('checkout','Check-out')],'Clean Type',required=True),
- 'room_no':fields.many2one('hotel.room','Room No',required=True),
- 'activity_lines':fields.one2many('hotel.housekeeping.activities','a_list','Activities'),
- 'room_no':fields.many2one('product.product','Room No',required=True),
- 'inspector':fields.many2one('res.users','Inspector',required=True),
- 'inspect_date_time':fields.datetime('Inspect Date Time',required=True),
- 'quality':fields.selection([('bad','Bad'),('good','Good'),('ok','Ok')],'Quality',required=True),
- 'state': fields.selection([('dirty','Dirty'),('clean','Clean'),('inspect','Inspect'),('done','Done'),('cancel', 'Cancelled')], 'state', select=True, required=True, readonly=True),
+ 'current_date': fields.date("Today's Date", required=True),
+ 'clean_type': fields.selection([('daily', 'Daily'), ('checkin', 'Check-In'), ('checkout', 'Check-Out')], 'Clean Type', required=True),
+ 'room_no': fields.many2one('hotel.room', 'Room No', required=True),
+ 'activity_lines': fields.one2many('hotel.housekeeping.activities', 'a_list', 'Activities', help='Details of housekeeping activities.'),
+ 'inspector': fields.many2one('res.users', 'Inspector', required=True),
+ 'inspect_date_time': fields.datetime('Inspect Date Time', required=True),
+ 'quality': fields.selection([('bad', 'Bad'), ('good', 'Good'), ('ok', 'Ok')], 'Quality', required=True, help='Inspector inspect the room and mark as Bad, Good or Ok. '),
+ 'state': fields.selection([('dirty', 'Dirty'), ('clean', 'Clean'), ('inspect', 'Inspect'), ('done', 'Done'), ('cancel', 'Cancelled')], 'State', select=True, required=True, readonly=True),
}
-
- _defaults={
+ _defaults = {
'state': lambda *a: 'dirty',
'current_date':lambda *a: time.strftime('%Y-%m-%d'),
}
-
+
def action_set_to_dirty(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state': 'dirty'})
wf_service = netsvc.LocalService('workflow')
for id in ids:
wf_service.trg_create(uid, self._name, id, cr)
return True
-
+
def room_cancel(self, cr, uid, ids, *args):
- self.write(cr, uid, ids, {
- 'state':'cancel'
- })
+ self.write(cr, uid, ids, {'state':'cancel'})
return True
def room_done(self, cr, uid, ids, *args):
- self.write(cr, uid, ids, {
- 'state':'done'
- })
+ self.write(cr, uid, ids, {'state':'done'})
return True
-
+
def room_inspect(self, cr, uid, ids, *args):
+ self.write(cr, uid, ids, {'state':'inspect'})
+ return True
- self.write(cr, uid, ids, {
- 'state':'inspect'
- })
- return True
-
def room_clean(self, cr, uid, ids, *args):
-
- self.write(cr, uid, ids, {
- 'state':'clean'
- })
+ self.write(cr, uid, ids, {'state':'clean'})
return True
-
-hotel_housekeeping()
-class hotel_housekeeping_activities(osv.osv):
+class hotel_housekeeping_activities(osv.Model):
_name = "hotel.housekeeping.activities"
_description = "Housekeeping Activities "
_columns = {
- 'a_list':fields.many2one('hotel.housekeeping','Reservation'),
- 'activity_name':fields.many2one('h.activity','Housekeeping Activity'),
- 'housekeeper':fields.many2one('res.users','Housekeeper',required=True),
- 'clean_start_time':fields.datetime('Clean Start Time',required=True),
- 'clean_end_time':fields.datetime('Clean End Time',required=True),
- 'dirty':fields.boolean('Dirty'),
- 'clean':fields.boolean('Clean'),
+ 'a_list': fields.many2one('hotel.housekeeping', 'Reservation'),
+ 'room_id': fields.many2one('hotel.room', 'Room No'),
+ 'today_date': fields.date('Today Date'),
+ 'activity_name': fields.many2one('h.activity', 'Housekeeping Activity'),
+ 'housekeeper': fields.many2one('res.users', 'Housekeeper', required=True),
+ 'clean_start_time': fields.datetime('Clean Start Time', required=True),
+ 'clean_end_time': fields.datetime('Clean End Time', required=True),
+ 'dirty': fields.boolean('Dirty', help='Checked if the housekeeping activity results as Dirty.'),
+ 'clean': fields.boolean('Clean', help='Checked if the housekeeping activity results as Clean.'),
}
-hotel_housekeeping_activities()
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+
+ def default_get(self, cr, uid, fields, context=None):
+ """ To get default values for the object.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+ @return: A dictionary which of fields with values.
+ """
+ if not context:
+ context = {}
+ res = super(hotel_housekeeping_activities, self).default_get(cr, uid, fields, context=context)
+ if context['room_id']:
+ res.update({'room_id': context['room_id']})
+ if context['today_date']:
+ res.update({'today_date': context['today_date']})
+ return res
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== modified file 'hotel_housekeeping/hotel_housekeeping_view.xml'
--- hotel_housekeeping/hotel_housekeeping_view.xml 2012-05-22 14:06:57 +0000
+++ hotel_housekeeping/hotel_housekeeping_view.xml 2014-04-18 16:01:07 +0000
@@ -4,72 +4,89 @@
<!--============================================================
Housekeeping
============================================================ -->
-
<record model="ir.ui.view" id="view_hotel_housekeeping_form">
<field name="name">hotel.housekeeping.form</field>
<field name="model">hotel.housekeeping</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Housekeeping">
- <notebook>
- <page string="Housekeeping">
- <field name="current_date" select="1"/>
- <field name="clean_type"/>
- <field name="room_no" select="1" domain="[('isroom','=',True)]"/>
- <field name="inspector"/>
- <field name="inspect_date_time"/>
- <field name="quality"/>
- <newline/>
- <newline/>
- <field name="activity_lines" colspan="4" nolabel="1">
- <form string="Activity Lines">
- <field name="activity_name"/>
- <field name="housekeeper"/>
- <field name="clean_start_time"/>
- <field name="clean_end_time"/>
- <field name="dirty"/>
- <field name="clean"/>
- </form>
- <tree string="Activity Lines">
- <field name="activity_name"/>
- <field name="housekeeper"/>
- <field name="clean_start_time"/>
- <field name="clean_end_time"/>
- <field name="dirty"/>
- <field name="clean"/>
- </tree>
- </field>
- <newline/>
- <field name="state"/>
- <group col="5" colspan="2">
- <button string="Clean" name="clean" states="dirty" type="workflow" icon="gtk-clear"/>
- <button string="Inspect" name="inspect" states="clean" type="workflow" icon="gtk-find"/>
- <button string="Done" name="done" states="inspect" type="workflow" icon="terp-camera_test"/>
- <button string="Cancel" name="cancel" states="clean,inspect" type="workflow" icon="gtk-cancel"/>
- <button string="Set to Dirty" name="action_set_to_dirty" states="cancel" type="object" icon="gtk-index"/>
+ <form string="Housekeeping" version="7.0">
+ <header>
+ <button string="Clean" name="clean" states="dirty" type="workflow" icon="gtk-clear"/>
+ <button string="Inspect" name="inspect" states="clean" type="workflow" icon="gtk-find"/>
+ <button string="Done" name="done" states="inspect" type="workflow" icon="terp-camera_test"/>
+ <button string="Cancel" name="cancel" states="clean,inspect" type="workflow" icon="gtk-cancel"/>
+ <button string="Set to Dirty" name="action_set_to_dirty" states="cancel" type="object" icon="gtk-index"/>
+ <field name="state" widget="statusbar"/>
+ </header>
+ <sheet>
+ <h1>
+ <label string="Housekeeping" />
+ </h1>
+ <group>
+ <group>
+ <field name="current_date" select="1"/>
+ <field name="clean_type"/>
+ <field name="room_no" select="1" domain="[('isroom','=',True)]"/>
+ </group>
+ <group>
+ <field name="inspector"/>
+ <field name="inspect_date_time"/>
+ <field name="quality"/>
+ </group>
+ </group>
+ <newline/>
+ <newline/>
+ <separator string="Activity Lines" colspan="4" />
+ <field name="activity_lines" context ="{'room_id':room_no, 'today_date':current_date}" colspan="4" nolabel="1">
+ <form string="Activity Lines">
+ <group colspan="4" col="4">
+ <field name="room_id" />
+ <field name="today_date"/>
+ <field name="activity_name"/>
+ <field name="housekeeper"/>
+ <field name="clean_start_time"/>
+ <field name="clean_end_time"/>
</group>
- </page>
- </notebook>
+ <div class="oe_title">
+ <div class="oe_edit_only">
+ <field name="dirty" />
+ <label for="dirty" string="Is Dirty?"/>
+ <field name="clean" />
+ <label for="clean" string="Is Clean?"/>
+ </div>
+ </div>
+ </form>
+ <tree string="Activity Lines">
+ <field name="activity_name"/>
+ <field name="housekeeper"/>
+ <field name="room_id" />
+ <field name="today_date"/>
+ <field name="clean_start_time"/>
+ <field name="clean_end_time"/>
+ <field name="dirty"/>
+ <field name="clean"/>
+ </tree>
+ </field>
+ <newline/>
+ </sheet>
</form>
</field>
</record>
-
+
<record model="ir.ui.view" id="view_hotel_housekeeping_tree">
<field name="name">hotel.housekeeping.tree</field>
<field name="model">hotel.housekeeping</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Housekeeping12" >
<field name="current_date"/>
<field name="clean_type"/>
<field name="room_no"/>
- <field name="activity_lines"/>
+ <!-- <field name="activity_lines"/> -->
<field name="inspector"/>
<field name="inspect_date_time"/>
<field name="state"/>
</tree>
</field>
- </record>
+ </record>
<record model="ir.actions.act_window" id="open_hotel_housekeeping_form_tree">
<field name="name">Housekeeping</field>
@@ -78,55 +95,36 @@
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_hotel_housekeeping_tree"/>
</record>
- <menuitem id="menu_housekeeping" name="Housekeeping" parent="hotel.hotel_management_menu" sequence="2"/>
- <menuitem name="Housekeeping"
- id="menu_open_hotel_housekeeping_form_tree"
+ <menuitem id="menu_housekeeping" name="Housekeeping Services" parent="hotel.hotel_management_menu" sequence="2"/>
+ <menuitem name="Housekeeping Services"
+ id="menu_open_hotel_housekeeping_form_tree"
action="open_hotel_housekeeping_form_tree"
parent="menu_housekeeping"
sequence="4" />
<!--
- ================ New HouseKeeping =================
+ ================ Activity Category=================
-->
-
- <record model="ir.actions.act_window" id="open_hotel_housekeeping_form_tree_new">
- <field name="name">New Housekeeping</field>
- <field name="res_model">hotel.housekeeping</field>
- <field name="view_type">form</field>
- <field name="view_mode">form,tree</field>
- <field name="view_id" ref="view_hotel_housekeeping_form"/>
- </record>
-
- <menuitem name="New HouseKeeping"
- id="menu_open_hotel_housekeeping_form_tree_new"
- action="open_hotel_housekeeping_form_tree_new"
- parent="menu_housekeeping"/>
-
-
-
- <!--
- ================ Activity Category=================
- -->
-
<record model="ir.ui.view" id="view_hotel_housekeeping_activity_type_form">
<field name="name">hotel_housekeeping_activity_type_form</field>
<field name="model">hotel.housekeeping.activity.type</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Housekeeping Activity Types">
+ <form string="Housekeeping Activity Types" version="7.0">
+ <sheet>
+ <group>
<field name="name" select="1"/>
<field name="parent_id" domain="[('isactivitytype','=',True)]"/>
+ </group>
+ </sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_hotel_housekeeping_activity_type_list">
<field name="name">hotel_housekeeping_activity_type_list</field>
<field name="model">hotel.housekeeping.activity.type</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Housekeeping Activity Types">
<field name="complete_name"/>
-
</tree>
</field>
</record>
@@ -136,31 +134,31 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
- <menuitem id="menu_hotel_activity" name="Activity" parent="hotel.hotel_configuration_menu" sequence="2"/>
+ <menuitem id="menu_hotel_activity" name="Activity" parent="hotel.hotel_configuration_menu" sequence="2"/>
<menuitem name="Activity Types"
id="menu_action_hotel_housekeeping_activity_type_view_form"
action="action_hotel_housekeeping_activity_type_view_form"
- parent="menu_hotel_activity" sequence="12"/>
-
+ parent="menu_hotel_activity" sequence="12"/>
+
<!-- activity as product -->
-
<record model="ir.ui.view" id="view_h_activity_form">
<field name="name">h.activity.form</field>
<field name="model">h.activity</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Housekeeping Activity">
- <field name="name" select="1"/>
- <field name="categ_id" select="1" domain="[('isactivitytype','=',True)]"/>
+ <form string="Housekeeping Activity" version="7.0">
+ <sheet>
+ <group>
+ <field name="name" select="1"/>
+ <field name="categ_id" select="1" domain="[('isactivitytype','=',True)]"/>
+ </group>
+ </sheet>
</form>
- </field>
+ </field>
</record>
-
<record model="ir.ui.view" id="view_h_activity_search">
<field name="name">h.activity.search</field>
<field name="model">h.activity</field>
- <field name="type">search</field>
<field name="arch" type="xml">
<search string="Housekeeping Activity" >
<field name="name" />
@@ -171,12 +169,11 @@
</group>
</search>
</field>
- </record>
-
+ </record>
+
<record model="ir.ui.view" id="view_h_activity_tree">
<field name="name">h.activity.tree</field>
<field name="model">h.activity</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Housekeeping Activity" >
<field name="name" />
@@ -190,10 +187,10 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
-
+
<menuitem name="Activities"
id="menu_open_h_activity_form"
action="action_h_activity_form"
parent="menu_hotel_activity"/>
</data>
-</openerp>
+</openerp>
\ No newline at end of file
=== modified file 'hotel_housekeeping/i18n/es.po' (properties changed: -x to +x)
=== modified file 'hotel_housekeeping/i18n/sv.po' (properties changed: -x to +x)
=== modified file 'hotel_housekeeping/report/__init__.py'
--- hotel_housekeeping/report/__init__.py 2012-05-18 07:39:13 +0000
+++ hotel_housekeeping/report/__init__.py 2014-04-18 16:01:07 +0000
@@ -1,24 +1,25 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import housekeeping_report
+from . import housekeeping_report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_housekeeping/report/activity_detail.rml'
--- hotel_housekeeping/report/activity_detail.rml 2012-05-22 14:06:57 +0000
+++ hotel_housekeeping/report/activity_detail.rml 2014-04-18 16:01:07 +0000
@@ -17,6 +17,7 @@
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
+ <lineStyle kind="GRID" colorName="black"/>
<blockBackground colorName="#c0c0c0" start="0,0" stop="0,0"/>
<blockBackground colorName="#c0c0c0" start="1,0" stop="1,0"/>
<blockBackground colorName="#c0c0c0" start="2,0" stop="2,0"/>
@@ -35,7 +36,9 @@
<paraStyle name="P6" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="CENTER"/>
<paraStyle name="P7" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="CENTER"/>
<paraStyle name="P8" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="LEFT"/>
- <paraStyle name="P9" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
+ <paraStyle name="P9" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="LEFT" />
+ <paraStyle name="P10" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT"/>
+ <paraStyle name="P11" fontName="Times-Roman" fontSize="12.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
@@ -46,18 +49,26 @@
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
</stylesheet>
<story>
- <para style="P3">Room Activities Report</para>
+ <para style="P6">
+ <font color="white"> </font>
+ </para>
+ <para style="P6">
+ <font color="white"> </font>
+ </para>
+ <para style="P11"><b>Room Activities Report</b></para>
<blockTable colWidths="482.0" style="Table2">
<tr>
<td>
- <para style="terp_default_Centre_8">From [[ formatLang(data['form']['date_start'],date=True) ]] to [[ formatLang(data['form']['date_end'],date=True) ]]</para>
- <para style="P9">
- <font face="Times-Roman">For Room :</font>
- <font face="Times-Roman" size="10.0"> [[ data['form']['room_no'][1] ]]</font>
+ <para style="P11"><b>From "</b>[[ formatLang(data['form']['date_start'],date=True) ]]<b>" To "</b>[[ formatLang(data['form']['date_end'],date=True) ]]<b>"</b></para>
+ <para style="P11">
+ <b>For Room :</b>[[ data['form']['room_no'][1] ]]
</para>
</td>
</tr>
</blockTable>
+ <para style="P6">
+ <font color="white"> </font>
+ </para>
<blockTable colWidths="110.0,80.0,88.0,68.0,63.0,72.0" style="Table1">
<tr>
<td>
@@ -80,24 +91,24 @@
</td>
</tr>
<tr>
- <td>
- <para style="P2">[[repeatIn(get_activity_detail(data['form']['date_start'],data['form']['date_end'],data['form']['room_no'][0]),'obj')]]</para>
- <para style="P2">[[obj['current_date'] ]]</para>
- </td>
- <td>
- <para style="P6">[[obj['activity'] ]]</para>
- </td>
- <td>
- <para style="P6">[[obj['login'] ]]</para>
- </td>
- <td>
- <para style="P6">[[obj['clean_start_time'] ]]</para>
- </td>
- <td>
- <para style="P6">[[obj['clean_end_time'] ]]</para>
- </td>
- <td>
- <para style="P7">[[obj['duration'] ]]</para>
+ <para style="P2">[[ repeatIn(get_room_activity_detail(data['form']['date_start'],data['form']['date_end'],data['form']['room_no']) ,'detail') ]]</para>
+ <td>
+ <para style="P2">[[detail['current_date'] ]]</para>
+ </td>
+ <td>
+ <para style="P6">[[detail['activity'] ]]</para>
+ </td>
+ <td>
+ <para style="P6">[[detail['login'] ]]</para>
+ </td>
+ <td>
+ <para style="P6">[[detail['clean_start_time'] ]]</para>
+ </td>
+ <td>
+ <para style="P6">[[detail['clean_end_time'] ]]</para>
+ </td>
+ <td>
+ <para style="P7">[[detail['duration'] ]]</para>
</td>
</tr>
</blockTable>
=== modified file 'hotel_housekeeping/report/hotel_housekeeping_report.xml'
--- hotel_housekeeping/report/hotel_housekeeping_report.xml 2012-05-23 07:17:58 +0000
+++ hotel_housekeeping/report/hotel_housekeeping_report.xml 2014-04-18 16:01:07 +0000
@@ -7,7 +7,6 @@
name="activity.detail"
rml="hotel_housekeeping/report/activity_detail.rml"
auto="False"
- menu="False"/>
+ menu="False"/>
</data>
-</openerp>
-
\ No newline at end of file
+</openerp>
\ No newline at end of file
=== modified file 'hotel_housekeeping/report/housekeeping_report.py'
--- hotel_housekeeping/report/housekeeping_report.py 2012-05-23 07:17:58 +0000
+++ hotel_housekeeping/report/housekeeping_report.py 2014-04-18 16:01:07 +0000
@@ -1,60 +1,73 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
import time
-from report import report_sxw
+from openerp.report import report_sxw
+from datetime import datetime
+from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
class activity_report(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(activity_report, self).__init__(cr, uid, name, context)
-
self.localcontext.update( {
'time': time,
- 'get_activity_detail': self.get_activity_detail,
+# 'get_activity_detail': self.get_activity_detail,
'get_room_no': self.get_room_no,
-
+ 'get_room_activity_detail':self._get_room_activity_detail,
})
-
- def get_activity_detail(self,date_start,date_end,room_no):
-
- self.cr.execute("select hh.current_date,ppt.name as Activity,pt.name as Room,rs.login,hha.clean_start_time,hha.clean_end_time,(hha.clean_end_time-hha.clean_start_time) as duration from hotel_housekeeping as hh " \
- "inner join hotel_housekeeping_activities as hha on hha.a_list=hh.id " \
- "inner join h_activity as ha on ha.id=hha.activity_name " \
- "inner join hotel_room as hor on hor.product_id=hh.room_no " \
- "inner join product_product as pp on pp.product_tmpl_id=hh.room_no " \
- "inner join product_template as pt on pt.id=pp.product_tmpl_id " \
- "inner join product_product as ppr on ppr.product_tmpl_id=ha.h_id " \
- "inner join product_template as ppt on ppt.id=ppr.product_tmpl_id " \
- "inner join res_users as rs on rs.id=hha.housekeeper " \
- "where hh.current_date >= %s and hh.current_date <= %s and hor.id= cast(%s as integer) " \
- ,(date_start,date_end,str(room_no))
- )
-
- res=self.cr.dictfetchall()
- return res
-
- def get_room_no(self,room_no):
+
+ def _get_room_activity_detail(self, date_start, date_end, room_data):
+ activity_detail = []
+ house_keep_act_obj = self.pool.get('hotel.housekeeping.activities')
+ if room_data:
+ activiti_line_ids = house_keep_act_obj.search(self.cr, self.uid, [('room_id','=',room_data[0]),('clean_start_time','>=',date_start),('clean_end_time','<=',date_end)])
+ for activity in house_keep_act_obj.browse(self.cr, self.uid, activiti_line_ids):
+ act_val = {}
+ ss_date = datetime.strptime(activity.clean_start_time, DEFAULT_SERVER_DATETIME_FORMAT)
+ ee_date = datetime.strptime(activity.clean_end_time, DEFAULT_SERVER_DATETIME_FORMAT)
+ diff = ee_date - ss_date
+ act_val.update({'current_date':activity.today_date, 'activity':activity.activity_name and activity.activity_name.name or '','login':activity.housekeeper and activity.housekeeper.name or '',
+ 'clean_start_time':activity.clean_start_time, 'clean_end_time':activity.clean_end_time, 'duration':diff})
+ activity_detail.append(act_val)
+ return activity_detail
+
+# def get_activity_detail(self,date_start,date_end,room_no):
+# self.cr.execute("select hh.current_date,ppt.name as Activity,rs.login,hha.clean_start_time,hha.clean_end_time,(hha.clean_end_time-hha.clean_start_time) as duration from hotel_housekeeping as hh " \
+# "inner join hotel_housekeeping_activities as hha on hha.a_list=hh.id " \
+# "inner join h_activity as ha on ha.id=hha.activity_name " \
+# "inner join product_product as pp on pp.product_tmpl_id=hh.room_no " \
+# "inner join product_template as pt on pt.id=pp.product_tmpl_id " \
+# "inner join product_product as ppr on ppr.product_tmpl_id=ha.h_id " \
+# "inner join product_template as ppt on ppt.id=ppr.product_tmpl_id " \
+# "inner join res_users as rs on rs.id=hha.housekeeper " \
+# "where hh.current_date >= %s and hh.current_date <= %s" \
+# ,(date_start,date_end))
+#
+# res=self.cr.dictfetchall()
+# return res
+
+ def get_room_no(self, room_no):
return self.pool.get('hotel.room').browse(self.cr, self.uid, room_no).name
-
-report_sxw.report_sxw('report.activity.detail', 'hotel.housekeeping', 'addons/hotel_housekeeping/report/activity_detail.rml',parser= activity_report)
+report_sxw.report_sxw('report.activity.detail', 'hotel.housekeeping', 'addons/hotel_housekeeping/report/activity_detail.rml', parser=activity_report)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_housekeeping/security/ir.model.access.csv'
--- hotel_housekeeping/security/ir.model.access.csv 2012-05-18 07:39:13 +0000
+++ hotel_housekeeping/security/ir.model.access.csv 2014-04-18 16:01:07 +0000
@@ -1,7 +1,14 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_product_category","product.category","product.model_product_category","hotel.group_hotel_user",1,1,0,0
-"access_hotel_housekeeping_acitivity_type","hotel.housekeeping.activity.type","model_hotel_housekeeping_activity_type","hotel.group_hotel_user",1,1,0,0
-"access_product_product","product.product","product.model_product_product","hotel.group_hotel_user",1,1,1,1
-"access_h_activity","h.activity","model_h_activity","hotel.group_hotel_user",1,1,1,1
-"access_hotel_housekeeping","hotel.housekeeping","model_hotel_housekeeping","hotel.group_hotel_user",1,1,1,1
-"access_hotel_housekeeping_activities","hotel.housekeeping.activities","model_hotel_housekeeping_activities","hotel.group_hotel_user",1,1,1,1
+"access_product_category_user","product.category.user","product.model_product_category","hotel.group_hotel_user",1,1,1,0
+"access_hotel_housekeeping_acitivity_type_user","hotel.housekeeping.activity.type.user","model_hotel_housekeeping_activity_type","hotel.group_hotel_user",1,1,1,0
+"access_product_product_user","product.product.user","product.model_product_product","hotel.group_hotel_user",1,1,1,0
+"access_h_activity_user","h.activity.user","model_h_activity","hotel.group_hotel_user",1,1,1,0
+"access_hotel_housekeeping_user","hotel.housekeeping.user","model_hotel_housekeeping","hotel.group_hotel_user",1,1,1,0
+"access_hotel_housekeeping_activities_user","hotel.housekeeping.activities.user","model_hotel_housekeeping_activities","hotel.group_hotel_user",1,1,1,0
+
+"access_product_category_manager","product.category.manager","product.model_product_category","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_housekeeping_acitivity_type_manager","hotel.housekeeping.activity.type.manager","model_hotel_housekeeping_activity_type","hotel.group_hotel_manager",1,1,1,1
+"access_product_product_manager","product.product.manager","product.model_product_product","hotel.group_hotel_manager",1,1,1,1
+"access_h_activity_manager","h.activity.manager","model_h_activity","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_housekeeping_manager","hotel.housekeeping.manager","model_hotel_housekeeping","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_housekeeping_activities_manager","hotel.housekeeping.activities.manager","model_hotel_housekeeping_activities","hotel.group_hotel_manager",1,1,1,1
=== modified file 'hotel_housekeeping/wizard/__init__.py'
--- hotel_housekeeping/wizard/__init__.py 2012-05-18 07:39:13 +0000
+++ hotel_housekeeping/wizard/__init__.py 2014-04-18 16:01:07 +0000
@@ -1,24 +1,25 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import housekeeping_wizard
+from . import housekeeping_wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_housekeeping/wizard/hotel_housekeeping_wizard.xml'
--- hotel_housekeeping/wizard/hotel_housekeeping_wizard.xml 2012-05-23 07:17:58 +0000
+++ hotel_housekeeping/wizard/hotel_housekeeping_wizard.xml 2014-04-18 16:01:07 +0000
@@ -1,25 +1,27 @@
<?xml version="1.0" ?>
<openerp>
<data>
+
<record model="ir.ui.view" id="hotel_housekeeping_wizard_form_view">
<field name="name">hotel.housekeeping.wizard.form</field>
<field name="model">hotel.housekeeping.wizard</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="form_string">
- <field name="date_start"/>
- <field name="date_end"/>
- <field name="room_no"/>
- <newline/>
- <separator colspan='4'/>
- <button icon="gtk-cancel" special="cancel" string="Cancel" colspan='2'/>
- <button name='print_report' type='object' string='Activity Report' colspan='2' icon="gtk-print"/>
+ <form string="form_string" version="7.0">
+ <group col="4">
+ <field name="date_start"/>
+ <field name="date_end"/>
+ <field name="room_no"/>
+ </group>
+ <footer>
+ <button name="print_report" string="Activity Report" type="object" class="oe_highlight"/>
+ or
+ <button string="Cancel" class="oe_link" special="cancel"/>
+ </footer>
</form>
</field>
</record>
-
- <record id="action_hotel_housekeeping_wizard"
- model="ir.actions.act_window">
+
+ <record id="action_hotel_housekeeping_wizard" model="ir.actions.act_window">
<field name="name">Activity List</field>
<field name="res_model">hotel.housekeeping.wizard</field>
<field name="view_type">form</field>
@@ -27,10 +29,10 @@
<field name="target">new</field>
</record>
- <menuitem name="Activity Report" id="wizard_activity_menu"
+ <menuitem name="Activity Report"
+ id="wizard_activity_menu"
action="action_hotel_housekeeping_wizard"
- parent="hotel.hotel_report_menu" sequence="29" />
+ parent="hotel.hotel_report_menu" sequence="29"/>
+
</data>
-</openerp>
-
-
+</openerp>
\ No newline at end of file
=== modified file 'hotel_housekeeping/wizard/housekeeping_wizard.py'
--- hotel_housekeeping/wizard/housekeeping_wizard.py 2012-05-23 07:17:58 +0000
+++ hotel_housekeeping/wizard/housekeeping_wizard.py 2014-04-18 16:01:07 +0000
@@ -1,50 +1,45 @@
-
-
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import wizard
-from osv import osv, fields
+from openerp.osv import osv, fields
-class hotel_housekeeping_wizard(osv.osv_memory):
+class hotel_housekeeping_wizard(osv.TransientModel):
_name = 'hotel.housekeeping.wizard'
-
_columns = {
- 'date_start' :fields.date('Start Date',required=True),
- 'date_end': fields.date('End Date',required=True),
- 'room_no':fields.many2one('hotel.room', 'Room No.', required=True),
+ 'date_start': fields.datetime('Activity Start Date', required=True),
+ 'date_end': fields.datetime('Activity End Date', required=True),
+ 'room_no': fields.many2one('hotel.room', 'Room No', required=True),
}
-
- def print_report(self,cr,uid,ids,context=None):
- datas = {
- 'ids': ids,
- 'model': 'hotel.housekeeping',
- 'form': self.read(cr, uid, ids)[0]
+
+ def print_report(self, cr, uid, ids, context=None):
+ values = {
+ 'ids': ids,
+ 'model': 'hotel.housekeeping',
+ 'form': self.read(cr, uid, ids, context=context)[0]
}
return {
'type': 'ir.actions.report.xml',
'report_name': 'activity.detail',
- 'datas': datas,
- }
-
-hotel_housekeeping_wizard()
+ 'datas': values,
+ }
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== added directory 'hotel_reservation/Doc'
=== added file 'hotel_reservation/Doc/ChangeLog.txt'
--- hotel_reservation/Doc/ChangeLog.txt 1970-01-01 00:00:00 +0000
+++ hotel_reservation/Doc/ChangeLog.txt 2014-04-18 16:01:07 +0000
@@ -0,0 +1,23 @@
+============================================================================================================================
+ Version Change Log (hotel_reservation)
+============================================================================================================================
+0.07 on 2014-04-04 by Dhwani
+ * Standardized the module as per v7 standards.
+
+0.06 on 2014-01-11 by Krunal Soni
+ * Checked code quality and improved report format.
+
+0.05 on 2014-01-07 by Krunal Soni
+ * Added Accurate licensing terms and Copyright(C) on top inside license info in each py file.
+
+0.04 on 2013-11-19 by Sudhir Arya
+ * Solved warnings and added scheduler to calculate room availability.
+
+0.03 on 2013-11-18 by Sudhir Arya
+ * Added access rights to some objects.
+
+0.02 on 2013-11-13 by Sudhir Arya
+ * Standardized the module as per v7 standards.
+
+1.01 --> Oct 1,2013 : Anil Kesariya
+ * Added Access control for manager user Improved label name.
\ No newline at end of file
=== modified file 'hotel_reservation/__init__.py'
--- hotel_reservation/__init__.py 2012-05-18 07:39:13 +0000
+++ hotel_reservation/__init__.py 2014-04-18 16:01:07 +0000
@@ -1,25 +1,26 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import hotel_reservation
-import wizard
-import report
+from . import hotel_reservation
+from . import wizard
+from . import report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_reservation/__openerp__.py'
--- hotel_reservation/__openerp__.py 2012-11-23 04:14:12 +0000
+++ hotel_reservation/__openerp__.py 2014-04-18 16:01:07 +0000
@@ -1,51 +1,55 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
+
{
"name" : "Hotel Reservation Management",
- "version" : "1.0",
- "author" : "Tiny",
+ "version" : "0.07",
+ "author": ["Serpent Consulting Services Pvt. Ltd.", "OpenERP SA" ],
"category" : "Generic Modules/Hotel Reservation",
"description": """
-Module for Hotel/Resort/Property management. You can manage:
-
-* Guest Reservation
-* Group Reservartion
-
-Different reports are also provided, mainly for hotel statistics.
+ Module for Hotel/Resort/Property management. You can manage:
+ * Guest Reservation
+ * Group Reservartion
+ Different reports are also provided, mainly for hotel statistics.
""",
+ "website": ["http://www.serpentcs.com", "http://www.openerp.com"],
"depends" : ["hotel"],
- "init_xml" : [],
- "demo_xml" : [
- #'hotel_reservation_data.xml',
- ],
- "update_xml" : [
- "hotel_reservation_view.xml",
- "hotel_reservation_sequence.xml",
- "hotel_reservation_workflow.xml",
- "wizard/hotel_reservation_wizard.xml",
- "report/hotel_reservation_report.xml",
- "security/ir.model.access.csv",
- ],
- "active": False,
- "installable": True
+ "data" : [
+ "security/ir.model.access.csv",
+ "wizard/hotel_reservation_wizard.xml",
+ "report/hotel_reservation_report.xml",
+ "hotel_reservation_sequence.xml",
+ "hotel_reservation_workflow.xml",
+ "hotel_reservation_view.xml",
+ "hotel_scheduler.xml",
+ ],
+ "demo": [
+ 'hotel_reservation_data.xml',
+ ],
+ 'js': ["static/src/js/hotel_room_summary.js", ],
+ 'qweb': ['static/src/xml/hotel_room_summary.xml'],
+ 'css': ["static/src/css/room_summary.css"],
+ 'installable': True,
+ 'auto_install': False,
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_reservation/hotel_reservation.py'
--- hotel_reservation/hotel_reservation.py 2012-05-25 11:25:10 +0000
+++ hotel_reservation/hotel_reservation.py 2014-04-18 16:01:07 +0000
@@ -1,82 +1,92 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-
-from osv import fields
-from osv import osv
+from openerp.osv import fields, osv
import time
-from mx import DateTime
import datetime
-import pooler
-from tools import config
-
-
-class hotel_reservation(osv.osv):
+from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
+from openerp.tools.translate import _
+
+class hotel_folio(osv.Model):
+ _inherit = 'hotel.folio'
+ _order = 'reservation_id desc'
+ _columns = {
+ 'reservation_id': fields.many2one('hotel.reservation', 'Reservation Id'),
+ }
+
+class hotel_reservation(osv.Model):
_name = "hotel.reservation"
_rec_name = "reservation_no"
_description = "Reservation"
+ _order = 'reservation_no desc'
_columns = {
-
- 'reservation_no': fields.char('Reservation No', size=64, required=True, select=True),
- 'date_order':fields.datetime('Date Ordered', required=True, readonly=True, states={'draft':[('readonly',False)]}),
- 'shop_id':fields.many2one('sale.shop', 'Shop', required=True, readonly=True, states={'draft':[('readonly',False)]}),
- 'partner_id':fields.many2one('res.partner', 'Guest Name', required=True,readonly=True, states={'draft':[('readonly',False)]}),
- 'pricelist_id':fields.many2one('product.pricelist', 'Pricelist', required=True,readonly=True, states={'draft':[('readonly',False)]}),
- 'partner_invoice_id':fields.many2one('res.partner.address', 'Invoice Address', readonly=True, required=True, states={'draft':[('readonly',False)]}),
- 'partner_order_id':fields.many2one('res.partner.address', 'Ordering Contact', readonly=True, required=True, states={'draft':[('readonly',False)]}, help="The name and address of the contact that requested the order or quotation."),
- 'partner_shipping_id':fields.many2one('res.partner.address', 'Shipping Address', readonly=True, required=True, states={'draft':[('readonly',False)]}),
- 'checkin': fields.datetime('Expected-Date-Arrival',required=True,readonly=True, states={'draft':[('readonly',False)]}),
- 'checkout': fields.datetime('Expected-Date-Departure',required=True, readonly=True, states={'draft':[('readonly',False)]}),
- 'adults':fields.integer('Adults',size=64,readonly=True, states={'draft':[('readonly',False)]}),
- 'childs':fields.integer('Children',size=64,readonly=True, states={'draft':[('readonly',False)]}),
- 'reservation_line':fields.one2many('hotel_reservation.line','line_id','Reservation Line'),
- 'state': fields.selection([('draft', 'Draft'),('confirm','Confirm'),('cancle','Cancle'),('done','Done')], 'State',readonly=True),
- 'folio_id': fields.many2many('hotel.folio', 'hotel_folio_reservation_rel', 'order_id', 'invoice_id', 'Folio'),
- 'dummy': fields.datetime('Dummy'),
-
- }
+ 'reservation_no': fields.char('Reservation No', size=64, required=True, readonly=True),
+ 'date_order': fields.datetime('Date Ordered', required=True, readonly=True, states={'draft':[('readonly', False)]}),
+ 'shop_id': fields.many2one('sale.shop', 'Shop', readonly=True, required=True, states={'draft':[('readonly', False)]}),
+ 'partner_id': fields.many2one('res.partner', 'Guest Name', readonly=True, required=True, states={'draft':[('readonly', False)]}),
+ 'pricelist_id': fields.many2one('product.pricelist', 'Price List', required=True, readonly=True, states={'draft':[('readonly', False)]}, help="Pricelist for current reservation. "),
+ 'partner_invoice_id': fields.many2one('res.partner', 'Invoice Address', readonly=True, states={'draft':[('readonly', False)]}, help="Invoice address for current reservation. "),
+ 'partner_order_id': fields.many2one('res.partner', 'Ordering Contact', readonly=True, states={'draft':[('readonly', False)]}, help="The name and address of the contact that requested the order or quotation."),
+ 'partner_shipping_id': fields.many2one('res.partner', 'Delivery Address', readonly=True, states={'draft':[('readonly', False)]}, help="Delivery address for current reservation. "),
+ 'checkin': fields.datetime('Expected-Date-Arrival', required=True, readonly=True, states={'draft':[('readonly', False)]}),
+ 'checkout': fields.datetime('Expected-Date-Departure', required=True, readonly=True, states={'draft':[('readonly', False)]}),
+ 'adults': fields.integer('Adults', size=64, readonly=True, states={'draft':[('readonly', False)]}, help='List of adults there in guest list. '),
+ 'children': fields.integer('Children', size=64, readonly=True, states={'draft':[('readonly', False)]}, help='Number of children there in guest list. '),
+ 'reservation_line': fields.one2many('hotel_reservation.line', 'line_id', 'Reservation Line', help='Hotel room reservation details. '),
+ 'state': fields.selection([('draft', 'Draft'), ('confirm', 'Confirm'), ('cancel', 'Cancel'), ('done', 'Done')], 'State', readonly=True),
+ 'folio_id': fields.many2many('hotel.folio', 'hotel_folio_reservation_rel', 'order_id', 'invoice_id', 'Folio'),
+ 'dummy': fields.datetime('Dummy'),
+# 'hotel_id': fields.many2one('hotel.hotel', required=True),
+ }
_defaults = {
-
- 'reservation_no': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid,'hotel.reservation'),
- 'state': lambda *a: 'draft',
- 'date_order': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
-
- }
- def on_change_checkout(self,cr, uid, ids, checkin_date=time.strftime('%Y-%m-%d %H:%M:%S'),checkout_date=time.strftime('%Y-%m-%d %H:%M:%S'),context=None):
+ 'reservation_no': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'hotel.reservation'),
+ 'state': lambda *a: 'draft',
+ 'date_order': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
+ }
+
+ def on_change_checkin(self, cr, uid, ids, date_order, checkin_date=time.strftime('%Y-%m-%d %H:%M:%S'), context=None):
+ if checkin_date < date_order:
+ raise osv.except_osv(_('Warning'), _('Checkin date should be greater than the current date.'))
+ return True
+
+ def on_change_checkout(self, cr, uid, ids, checkin_date=time.strftime('%Y-%m-%d %H:%M:%S'), checkout_date=time.strftime('%Y-%m-%d %H:%M:%S'), context=None):
+ if checkout_date < checkin_date:
+ raise osv.except_osv(_('Warning'), _('Checkout date should be greater than the Checkin date.'))
delta = datetime.timedelta(days=1)
- addDays = datetime.datetime(*time.strptime(checkout_date,'%Y-%m-%d %H:%M:%S')[:5]) + delta
+ addDays = datetime.datetime(*time.strptime(checkout_date, '%Y-%m-%d %H:%M:%S')[:5]) + delta
val = {'value':{'dummy':addDays.strftime('%Y-%m-%d %H:%M:%S')}}
return val
-
- def onchange_partner_id(self, cr, uid, ids, part):
- if not part:
+
+ def onchange_partner_id(self, cr, uid, ids, partner_id):
+ if not partner_id:
return {'value':{'partner_invoice_id': False, 'partner_shipping_id':False, 'partner_order_id':False}}
- addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['delivery','invoice','contact'])
- pricelist = self.pool.get('res.partner').browse(cr, uid, part).property_product_pricelist.id
+ partner_obj = self.pool.get('res.partner')
+ addr = partner_obj.address_get(cr, uid, [partner_id], ['delivery', 'invoice', 'contact'])
+ pricelist = partner_obj.browse(cr, uid, partner_id).property_product_pricelist.id
return {'value':{'partner_invoice_id': addr['invoice'], 'partner_order_id':addr['contact'], 'partner_shipping_id':addr['delivery'], 'pricelist_id': pricelist}}
-
-
- def confirmed_reservation(self,cr,uid,ids):
-
- for reservation in self.browse(cr, uid, ids):
- cr.execute("select count(*) from hotel_reservation as hr " \
+
+ def confirmed_reservation(self, cr, uid, ids, context=None):
+ reservation_line_obj = self.pool.get('hotel.room.reservation.line')
+ for reservation in self.browse(cr, uid, ids, context=context):
+ cr.execute("select count(*) from hotel_reservation as hr " \
"inner join hotel_reservation_line as hrl on hrl.line_id = hr.id " \
"inner join hotel_reservation_line_room_rel as hrlrr on hrlrr.room_id = hrl.id " \
"where (checkin,checkout) overlaps ( timestamp %s , timestamp %s ) " \
@@ -87,65 +97,249 @@
"inner join hotel_reservation_line as hrl on hrl.line_id = hr.id " \
"inner join hotel_reservation_line_room_rel as hrlrr on hrlrr.room_id = hrl.id " \
"where hr.id = cast(%s as integer) )" \
- ,(reservation.checkin,reservation.checkout,str(reservation.id),str(reservation.id))
- )
- res = cr.fetchone()
- roomcount = res and res[0] or 0.0
- if roomcount:
- raise osv.except_osv('Warning', 'You tried to confirm reservation with room those already reserved in this reservation period')
- else:
-
- self.write(cr, uid, ids, {'state':'confirm'})
- return True
-
- def _create_folio(self,cr,uid,ids):
- for reservation in self.browse(cr,uid,ids):
+ , (reservation.checkin, reservation.checkout, str(reservation.id), str(reservation.id)))
+ res = cr.fetchone()
+ roomcount = res and res[0] or 0.0
+ if roomcount:
+ raise osv.except_osv(_('Warning'), _('You tried to confirm reservation with room those already reserved in this reservation period'))
+ else:
+ self.write(cr, uid, ids, {'state':'confirm'}, context=context)
+ for line_id in reservation.reservation_line:
+ line_id = line_id.reserve
+ for room_id in line_id:
+ vals = {
+ 'room_id': room_id.id,
+ 'check_in': reservation.checkin,
+ 'check_out': reservation.checkout,
+ 'state': 'assigned',
+ 'reservation_id': reservation.id,
+ }
+ reservation_line_obj.create(cr, uid, vals, context=context)
+ return True
+
+ def copy(self, cr, uid, id, default=None, context=None):
+ if default is None:
+ default = {}
+ rev_no = self.pool.get('ir.sequence').get(cr, uid, 'hotel.reservation')
+ default.update({'reservation_no': rev_no})
+ super(hotel_reservation, self).copy(cr, uid, id, default=default, context=context)
+
+ def _create_folio(self, cr, uid, ids, context=None):
+ hotel_folio_obj = self.pool.get('hotel.folio')
+ room_obj = self.pool.get('hotel.room')
+ for reservation in self.browse(cr, uid, ids, context=context):
+ folio_lines = []
+ checkin_date, checkout_date = reservation['checkin'], reservation['checkout']
+ duration_vals = hotel_folio_obj.onchange_dates(cr, uid, [], checkin_date=checkin_date, checkout_date=checkout_date, duration=False)
+ duration = duration_vals.get('value', False) and duration_vals['value'].get('duration') or 0.0
+ folio_vals = {
+ 'date_order': reservation.date_order,
+ 'shop_id': reservation.shop_id.id,
+ 'partner_id': reservation.partner_id.id,
+ 'pricelist_id': reservation.pricelist_id.id,
+ 'partner_invoice_id': reservation.partner_invoice_id.id,
+ 'partner_shipping_id': reservation.partner_shipping_id.id,
+ 'checkin_date': reservation.checkin,
+ 'checkout_date': reservation.checkout,
+ 'duration': duration,
+ 'reservation_id': reservation.id,
+ 'service_lines': reservation['folio_id']
+ }
for line in reservation.reservation_line:
- for r in line.reserve:
- folio=self.pool.get('hotel.folio').create(cr,uid,{
- 'date_order':reservation.date_order,
- 'shop_id':reservation.shop_id.id,
- 'partner_id':reservation.partner_id.id,
- 'pricelist_id':reservation.pricelist_id.id,
- 'partner_invoice_id':reservation.partner_invoice_id.id,
- 'partner_order_id':reservation.partner_order_id.id,
- 'partner_shipping_id':reservation.partner_shipping_id.id,
- 'checkin_date': reservation.checkin,
- 'checkout_date': reservation.checkout,
- 'room_lines': [(0,0,{'folio_id':line['id'],
- 'checkin_date':reservation['checkin'],
- 'checkout_date':reservation['checkout'],
- 'product_id':r['id'],
- 'name':reservation['reservation_no'],
- 'product_uom':r['uom_id'].id,
- 'price_unit':r['lst_price'],
- 'product_uom_qty':(datetime.datetime(*time.strptime(reservation['checkout'],'%Y-%m-%d %H:%M:%S')[:5]) - datetime.datetime(*time.strptime(reservation['checkin'],'%Y-%m-%d %H:%M:%S')[:5])).days
-
- })],
- 'service_lines':reservation['folio_id']
- })
- cr.execute('insert into hotel_folio_reservation_rel (order_id,invoice_id) values (%s,%s)', (reservation.id, folio))
- self.write(cr, uid, ids, {'state':'done'})
- return True
-hotel_reservation()
-
-class hotel_reservation_line(osv.osv):
- _name = "hotel_reservation.line"
-
- _description = "Reservation Line"
- _columns = {
-
- 'line_id':fields.many2one('hotel.reservation'),
- 'reserve':fields.many2many('product.product','hotel_reservation_line_room_rel','room_id','hotel_reservation_line_id', domain="[('isroom','=',True),('categ_id','=',categ_id)]"),
- 'categ_id': fields.many2one('product.category','Room Type',domain="[('isroomtype','=',True)]"),
-
- }
-hotel_reservation_line()
-
-
-
-
+ for r in line.reserve:
+ folio_lines.append((0, 0, {
+ 'checkin_date': checkin_date,
+ 'checkout_date': checkout_date,
+ 'product_id': r.product_id and r.product_id.id,
+ 'name': reservation['reservation_no'],
+ 'product_uom': r['uom_id'].id,
+ 'price_unit': r['lst_price'],
+ 'product_uom_qty': (datetime.datetime(*time.strptime(reservation['checkout'], '%Y-%m-%d %H:%M:%S')[:5]) - datetime.datetime(*time.strptime(reservation['checkin'], '%Y-%m-%d %H:%M:%S')[:5])).days
+ }))
+ room_obj.write(cr, uid, [r.id], {'status': 'occupied'}, context=context)
+ folio_vals.update({'room_lines': folio_lines})
+ folio = hotel_folio_obj.create(cr, uid, folio_vals, context=context)
+ cr.execute('insert into hotel_folio_reservation_rel (order_id, invoice_id) values (%s,%s)', (reservation.id, folio))
+ self.write(cr, uid, ids, {'state': 'done'}, context=context)
+ return True
+
+class hotel_reservation_line(osv.Model):
+ _name = "hotel_reservation.line"
+ _description = "Reservation Line"
+ _columns = {
+ 'name':fields.char('Name', size=64),
+ 'line_id':fields.many2one('hotel.reservation'),
+ 'reserve':fields.many2many('hotel.room', 'hotel_reservation_line_room_rel', 'room_id', 'hotel_reservation_line_id', domain="[('isroom','=',True),('categ_id','=',categ_id)]"),
+ 'categ_id': fields.many2one('product.category', 'Room Type', domain="[('isroomtype','=',True)]", change_default=True),
+ }
+
+ def on_change_categ(self, cr, uid, ids, categ_ids, checkin, checkout, context=None):
+ hotel_room_obj = self.pool.get('hotel.room')
+ hotel_room_ids = hotel_room_obj.search(cr, uid, [('categ_id', '=', categ_ids)], context=context)
+ assigned = False
+ room_ids = []
+ if not checkin:
+ raise osv.except_osv(_('No Checkin date Defined!'), _('Before choosing a room,\n You have to select a Check in date or a Check out date in the reservation form.'))
+ for room in hotel_room_obj.browse(cr, uid, hotel_room_ids, context=context):
+ assigned = False
+ for line in room.room_reservation_line_ids:
+ if line.check_in == checkin and line.check_out == checkout:
+ assigned = True
+ if not assigned:
+ room_ids.append(room.id)
+ if room_ids:
+ domain = {'reserve': [('id', 'in', room_ids)]}
+ return {'domain': domain}
+
+class hotel_room_reservation_line(osv.Model):
+ _name = 'hotel.room.reservation.line'
+ _description = 'Hotel Room Reservation'
+ _rec_name = 'room_id'
+ _columns = {
+ 'room_id': fields.many2one('hotel.room', 'Room id'),
+ 'check_in':fields.datetime('Check In Date', required=True),
+ 'check_out': fields.datetime('Check Out Date', required=True),
+ 'state': fields.selection([('assigned', 'Assigned'), ('unassigned', 'Unassigned')], 'Room Status'),
+ 'reservation_id': fields.many2one('hotel.reservation', 'Reservation'),
+ }
+
+class hotel_room(osv.Model):
+ _inherit = 'hotel.room'
+ _description = 'Hotel Room'
+ _columns = {
+ 'room_reservation_line_ids': fields.one2many('hotel.room.reservation.line', 'room_id', 'Room Reservation Line'),
+ }
+
+ def cron_room_line(self, cr, uid, context=None):
+ reservation_line_obj = self.pool.get('hotel.room.reservation.line')
+ now = datetime.datetime.now()
+ curr_date = now.strftime(DEFAULT_SERVER_DATETIME_FORMAT)
+ room_ids = self.search(cr, uid, [], context=context)
+ for room in self.browse(cr, uid, room_ids, context=context):
+ status = {}
+ reservation_line_ids = [reservation_line.id for reservation_line in room.room_reservation_line_ids]
+ reservation_line_ids = reservation_line_obj.search(cr, uid, [('id', 'in', reservation_line_ids), ('check_in', '<=', curr_date), ('check_out', '>=', curr_date)], context=context)
+ if reservation_line_ids:
+ status = {'status': 'occupied'}
+ else:
+ status = {'status': 'available'}
+ self.write(cr, uid, [room.id], status, context=context)
+ return True
+
+class room_reservation_summary(osv.Model):
+ _name = 'room.reservation.summary'
+ _description = 'Room reservation summary'
+ _columns = {
+ 'date_from':fields.datetime('Date From'),
+ 'date_to':fields.datetime('Date To'),
+ 'summary_header':fields.text('Summary Header'),
+ 'room_summary':fields.text('Room Summary'),
+ }
+
+ def room_reservation(self, cr, uid, ids, context=None):
+ mod_obj = self.pool.get('ir.model.data')
+ if context is None:
+ context = {}
+ model_data_ids = mod_obj.search(cr, uid, [('model', '=', 'ir.ui.view'), ('name', '=', 'view_hotel_reservation_form')], context=context)
+ resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
+ return {
+ 'name': _('Reconcile Write-Off'),
+ 'context': context,
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'hotel.reservation',
+ 'views': [(resource_id, 'form')],
+ 'type': 'ir.actions.act_window',
+ 'target': 'new',
+ }
+
+ def get_room_summary(self, cr, uid, ids, date_from, date_to, context=None):
+ res = {}
+ all_detail = []
+ room_obj = self.pool.get('hotel.room')
+ reservation_line_obj = self.pool.get('hotel.room.reservation.line')
+ date_range_list = []
+ main_header = []
+ summary_header_list = ['Rooms']
+ if date_from and date_to:
+ if date_from > date_to:
+ raise osv.except_osv(_('User Error!'), _('Please Check Time period Date From can\'t be greater than Date To !'))
+ d_frm_obj = datetime.datetime.strptime(date_from, DEFAULT_SERVER_DATETIME_FORMAT)
+ d_to_obj = datetime.datetime.strptime(date_to, DEFAULT_SERVER_DATETIME_FORMAT)
+ temp_date = d_frm_obj
+ while(temp_date <= d_to_obj):
+ val = ''
+ val = str(temp_date.strftime("%a")) + ' ' + str(temp_date.strftime("%b")) + ' ' + str(temp_date.strftime("%d"))
+ summary_header_list.append(val)
+ date_range_list.append(temp_date.strftime(DEFAULT_SERVER_DATETIME_FORMAT))
+ temp_date = temp_date + datetime.timedelta(days=1)
+ all_detail.append(summary_header_list)
+ room_ids = room_obj.search(cr, uid, [], context=context)
+ all_room_detail = []
+ for room in room_obj.browse(cr, uid, room_ids, context=context):
+ room_detail = {}
+ room_list_stats = []
+ room_detail.update({'name':room.name or ''})
+ if not room.room_reservation_line_ids:
+ for chk_date in date_range_list:
+ room_list_stats.append({'state':'Free', 'date':chk_date})
+ else:
+ for chk_date in date_range_list:
+ for room_res_line in room.room_reservation_line_ids:
+ reservation_line_ids = [i.id for i in room.room_reservation_line_ids]
+ reservation_line_ids = reservation_line_obj.search(cr, uid, [('id', 'in', reservation_line_ids), ('check_in', '<=', chk_date), ('check_out', '>=', chk_date)])
+ if reservation_line_ids:
+ room_list_stats.append({'state':'Reserved', 'date':chk_date, 'room_id':room.id})
+ break
+# if l.check_in <= chk_date and l.check_out >= chk_date:
+# room_list_stats.append({'state':'Reserved','date':chk_date, 'room_id':room.id})
+# break
+ else:
+ room_list_stats.append({'state':'Free', 'date':chk_date, 'room_id':room.id})
+ break
+ room_detail.update({'value':room_list_stats})
+ all_room_detail.append(room_detail)
+ main_header.append({'header':summary_header_list})
+ res.update({'value':{'summary_header': str(main_header), 'room_summary':str(all_room_detail)}})
+ return res
+
+class quick_room_reservation(osv.TransientModel):
+ _name = 'quick.room.reservation'
+ _description = 'Quick Room Reservation'
+ _columns = {
+ 'partner_id':fields.many2one('res.partner', string="Customer", required=True),
+ 'check_in':fields.datetime('Check In', required=True),
+ 'check_out':fields.datetime('Check Out', required=True),
+ 'room_id':fields.many2one('hotel.room', 'Room', required=True),
+ 'shop_id':fields.many2one('sale.shop', 'Hotel', required=True),
+ 'pricelist_id':fields.many2one('product.pricelist', 'pricelist', required=True)
+ }
+
+ def default_get(self, cr, uid, fields, context=None):
+ if context is None:
+ context = {}
+ res = super(quick_room_reservation, self).default_get(cr, uid, fields, context=context)
+ if context:
+ keys = context.keys()
+ if 'date' in keys:
+ res.update({'check_in': context['date']})
+ if 'room_id' in keys:
+ res.update({'room_id': [context['room_id']]})
+ return res
+
+ def room_reserve(self, cr, uid, ids, context=None):
+ hotel_res_obj = self.pool.get('hotel.reservation')
+ for room_resv in self.browse(cr, uid, ids, context=context):
+ hotel_res_obj.create(cr, uid, {
+ 'partner_id':room_resv.partner_id.id,
+ 'checkin':room_resv.check_in,
+ 'checkout':room_resv.check_out,
+ 'shop_id':room_resv.shop_id.id,
+ 'pricelist_id':room_resv.pricelist_id.id,
+ 'reservation_line':[(0, 0, {
+ 'reserve': [(6, 0, [room_resv.room_id.id])],
+ 'name':room_resv.room_id and room_resv.room_id.name or ''})]
+ }, context=context)
+ return True
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
-
=== modified file 'hotel_reservation/hotel_reservation_data.xml'
--- hotel_reservation/hotel_reservation_data.xml 2012-05-18 07:39:13 +0000
+++ hotel_reservation/hotel_reservation_data.xml 2014-04-18 16:01:07 +0000
@@ -2,114 +2,103 @@
<openerp>
<data noupdate="1">
<record id="hotel_reservation_0" model="hotel.reservation">
- <field name="partner_shipping_id" ref="base.res_partner_address_8"/>
- <field eval=""2008-05-05 12:09:00"" name="checkout"/>
- <field eval=""2008-05-02 12:09:00"" name="checkin"/>
- <field name="partner_order_id" ref="base.res_partner_address_8"/>
- <field eval=""draft"" name="state"/>
- <field name="shop_id" ref="sale.shop"/>
- <field name="partner_invoice_id" ref="base.res_partner_address_8"/>
+ <field eval=""2013-05-05 12:09:00"" name="checkout"/>
+ <field eval=""2013-05-02 12:09:00"" name="checkin"/>
+ <field name="shop_id" ref="sale.sale_shop_1"/>
<field name="pricelist_id" ref="product.list0"/>
- <field eval=""2008-05-02"" name="date_order"/>
- <field name="partner_id" ref="base.res_partner_agrolait"/>
+ <field name="partner_id" ref="base.res_partner_2"/>
+ <field name="partner_invoice_id" ref="base.res_partner_2"/>
+ <field name="partner_shipping_id" ref="base.res_partner_2"/>
<field eval=""R/00002"" name="reservation_no"/>
</record>
<record id="hotel_reservation_line_0" model="hotel_reservation.line">
<field name="line_id" ref="hotel_reservation_0"/>
- <field name="categ_id" ref="hotel.hotel_room_type_1_product_category"/>
- <field eval="[(6,0,[ref('hotel.hotel_room_0_product_product')])]" name="reserve"/>
+ <field name="categ_id" ref="hotel.hotel_room_type_1"/>
+ <field eval="[(6,0,[ref('hotel.hotel_room_0')])]" name="reserve"/>
</record>
<record id="hotel_reservation_1" model="hotel.reservation">
- <field name="partner_shipping_id" ref="base.res_partner_address_tang"/>
- <field eval=""2008-05-05 12:11:00"" name="checkout"/>
- <field eval=""2008-05-02 12:11:00"" name="checkin"/>
- <field name="partner_order_id" ref="base.res_partner_address_tang"/>
- <field eval=""draft"" name="state"/>
- <field name="shop_id" ref="sale.shop"/>
- <field name="partner_invoice_id" ref="base.res_partner_address_tang"/>
+ <field eval=""2013-05-05 12:11:00"" name="checkout"/>
+ <field eval=""2013-05-02 12:11:00"" name="checkin"/>
+ <field name="shop_id" ref="sale.sale_shop_1"/>
<field name="pricelist_id" ref="product.list0"/>
- <field eval=""2008-05-02"" name="date_order"/>
- <field name="partner_id" ref="base.res_partner_asus"/>
+ <field name="partner_id" ref="base.res_partner_5"/>
+ <field name="partner_invoice_id" ref="base.res_partner_5"/>
+ <field name="partner_shipping_id" ref="base.res_partner_5"/>
+ <field eval=""2013-05-02"" name="date_order"/>
<field eval=""R/00003"" name="reservation_no"/>
</record>
<record id="hotel_reservation_line_1" model="hotel_reservation.line">
<field name="line_id" ref="hotel_reservation_1"/>
- <field name="categ_id" ref="hotel.hotel_room_type_1_product_category"/>
- <field eval="[(6,0,[ref('hotel.hotel_room_1_product_product')])]" name="reserve"/>
+ <field name="categ_id" ref="hotel.hotel_room_type_1"/>
+ <field eval="[(6,0,[ref('hotel.hotel_room_1')])]" name="reserve"/>
</record>
<record id="hotel_reservation_2" model="hotel.reservation">
- <field name="partner_shipping_id" ref="base.res_partner_address_9"/>
- <field eval=""2008-05-05 12:20:00"" name="checkout"/>
- <field eval=""2008-05-02 12:22:00"" name="checkin"/>
- <field name="partner_order_id" ref="base.res_partner_address_9"/>
- <field eval=""draft"" name="state"/>
- <field name="shop_id" ref="sale.shop"/>
- <field name="partner_invoice_id" ref="base.res_partner_address_9"/>
- <field name="pricelist_id" ref="product.list0"/>
- <field eval=""2008-05-02"" name="date_order"/>
- <field name="partner_id" ref="base.res_partner_2"/>
+ <field eval=""2013-05-05 12:20:00"" name="checkout"/>
+ <field eval=""2013-05-02 12:22:00"" name="checkin"/>
+ <field eval=""2013-05-02"" name="date_order"/>
+ <field name="partner_id" ref="base.res_partner_9"/>
+ <field name="shop_id" ref="sale.sale_shop_1"/>
+ <field name="pricelist_id" ref="product.list0"/>
+ <field name="partner_invoice_id" ref="base.res_partner_9"/>
+ <field name="partner_shipping_id" ref="base.res_partner_9"/>
<field eval=""R/00004"" name="reservation_no"/>
</record>
<record id="hotel_reservation_line_2" model="hotel_reservation.line">
<field name="line_id" ref="hotel_reservation_2"/>
- <field name="categ_id" ref="hotel.hotel_room_type_1_product_category"/>
- <field eval="[(6,0,[ref('hotel.hotel_room_2_product_product')])]" name="reserve"/>
+ <field name="categ_id" ref="hotel.hotel_room_type_1"/>
+ <field eval="[(6,0,[ref('hotel.hotel_room_2')])]" name="reserve"/>
</record>
<record id="hotel_reservation_3" model="hotel.reservation">
- <field name="partner_shipping_id" ref="base.res_partner_address_zen"/>
- <field eval=""2008-05-02 12:30:00"" name="checkout"/>
- <field eval=""2008-04-28 12:33:00"" name="checkin"/>
- <field name="partner_order_id" ref="base.res_partner_address_zen"/>
- <field eval=""draft"" name="state"/>
- <field name="shop_id" ref="sale.shop"/>
- <field name="partner_invoice_id" ref="base.res_partner_address_zen"/>
- <field name="pricelist_id" ref="product.list0"/>
- <field eval=""2008-05-02"" name="date_order"/>
- <field name="partner_id" ref="base.res_partner_3"/>
+ <field eval=""2013-05-02 12:30:00"" name="checkout"/>
+ <field eval=""2013-04-28 12:33:00"" name="checkin"/>
+ <field name="shop_id" ref="sale.sale_shop_1"/>
+ <field name="pricelist_id" ref="product.list0"/>
+ <field name="partner_id" ref="base.res_partner_3"/>
+ <field name="partner_invoice_id" ref="base.res_partner_3"/>
+ <field name="partner_shipping_id" ref="base.res_partner_3"/>
+
<field eval=""R/00005"" name="reservation_no"/>
</record>
<record id="hotel_reservation_line_3" model="hotel_reservation.line">
<field name="line_id" ref="hotel_reservation_3"/>
- <field name="categ_id" ref="hotel.hotel_room_type_2_product_category"/>
- <field eval="[(6,0,[ref('hotel.hotel_room_3_product_product')])]" name="reserve"/>
+ <field name="categ_id" ref="hotel.hotel_room_type_2"/>
+ <field eval="[(6,0,[ref('hotel.hotel_room_3')])]" name="reserve"/>
</record>
<workflow action="confirm" model="hotel.reservation" ref="hotel_reservation_3"/>
<record id="hotel_reservation_4" model="hotel.reservation">
- <field name="partner_shipping_id" ref="base.res_partner_address_13"/>
- <field eval=""2008-05-02 12:50:00"" name="checkout"/>
- <field eval=""2008-04-28 12:55:00"" name="checkin"/>
- <field name="partner_order_id" ref="base.res_partner_address_13"/>
- <field eval=""draft"" name="state"/>
- <field name="shop_id" ref="sale.shop"/>
- <field name="partner_invoice_id" ref="base.res_partner_address_13"/>
+ <field eval=""2013-05-02 12:50:00"" name="checkout"/>
+ <field eval=""2013-04-28 12:55:00"" name="checkin"/>
<field name="pricelist_id" ref="product.list0"/>
- <field eval=""2008-05-02"" name="date_order"/>
+ <field eval=""2013-05-02"" name="date_order"/>
<field name="partner_id" ref="base.res_partner_14"/>
+ <field name="shop_id" ref="sale.sale_shop_1"/>
+ <field name="partner_invoice_id" ref="base.res_partner_14"/>
+ <field name="partner_shipping_id" ref="base.res_partner_14"/>
+
<field eval=""R/00006"" name="reservation_no"/>
</record>
<record id="hotel_reservation_line_4" model="hotel_reservation.line">
<field name="line_id" ref="hotel_reservation_4"/>
- <field name="categ_id" ref="hotel.hotel_room_type_2_product_category"/>
- <field eval="[(6,0,[ref('hotel.hotel_room_4_product_product')])]" name="reserve"/>
+ <field name="categ_id" ref="hotel.hotel_room_type_2"/>
+ <field eval="[(6,0,[ref('hotel.hotel_room_4')])]" name="reserve"/>
</record>
<workflow action="confirm" model="hotel.reservation" ref="hotel_reservation_4"/>
<record id="hotel_reservation_5" model="hotel.reservation">
- <field name="partner_shipping_id" ref="base.res_partner_address_7"/>
- <field eval=""2008-05-02 01:09:00"" name="checkout"/>
- <field eval=""2008-04-28 01:09:00"" name="checkin"/>
- <field name="partner_order_id" ref="base.res_partner_address_7"/>
- <field eval=""draft"" name="state"/>
- <field name="shop_id" ref="sale.shop"/>
- <field name="partner_invoice_id" ref="base.res_partner_address_7"/>
- <field name="pricelist_id" ref="product.list0"/>
- <field eval=""2008-05-02"" name="date_order"/>
+ <field eval=""2013-05-02 01:09:00"" name="checkout"/>
+ <field eval=""2013-04-28 01:09:00"" name="checkin"/>
+ <field eval=""2013-05-02"" name="date_order"/>
<field name="partner_id" ref="base.res_partner_4"/>
+ <field name="shop_id" ref="sale.sale_shop_1"/>
+ <field name="pricelist_id" ref="product.list0"/>
+ <field name="partner_invoice_id" ref="base.res_partner_4"/>
+ <field name="partner_shipping_id" ref="base.res_partner_4"/>
+
<field eval=""R/00007"" name="reservation_no"/>
</record>
<record id="hotel_reservation_line_5" model="hotel_reservation.line">
<field name="line_id" ref="hotel_reservation_5"/>
- <field name="categ_id" ref="hotel.hotel_room_type_2_product_category"/>
- <field eval="[(6,0,[ref('hotel.hotel_room_5_product_product')])]" name="reserve"/>
+ <field name="categ_id" ref="hotel.hotel_room_type_2"/>
+ <field eval="[(6,0,[ref('hotel.hotel_room_5')])]" name="reserve"/>
</record>
<workflow action="confirm" model="hotel.reservation" ref="hotel_reservation_5"/>
</data>
=== modified file 'hotel_reservation/hotel_reservation_sequence.xml'
--- hotel_reservation/hotel_reservation_sequence.xml 2012-05-18 07:39:13 +0000
+++ hotel_reservation/hotel_reservation_sequence.xml 2014-04-18 16:01:07 +0000
@@ -2,7 +2,7 @@
<openerp>
<data noupdate="1">
#
- # Sequences for hotel.folio
+ # Sequences for hotel.reservation
#
<record model="ir.sequence.type" id="seq_type_hotel_reservation">
=== modified file 'hotel_reservation/hotel_reservation_view.xml'
--- hotel_reservation/hotel_reservation_view.xml 2012-05-22 14:06:57 +0000
+++ hotel_reservation/hotel_reservation_view.xml 2014-04-18 16:01:07 +0000
@@ -8,53 +8,70 @@
<record model="ir.ui.view" id="view_hotel_reservation_form">
<field name="name">hotel.reservation.form</field>
<field name="model">hotel.reservation</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string=" Reservation">
- <notebook>
- <page string="Reservation">
- <field name="reservation_no" colspan="1"/>
- <field name="date_order" select="1"/>
- <field name="shop_id" select="2"/>
- <field name="pricelist_id"/>
- <field name="partner_id" on_change="onchange_partner_id(partner_id)" select="1"/>
- <field name="partner_order_id" domain="[('partner_id','=',partner_id)]"/>
- <field name="partner_invoice_id" domain="[('partner_id','=',partner_id)]"/>
- <field name="partner_shipping_id" domain="[('partner_id','=',partner_id)]"/>
- <field name="checkin" colspan="1"/>
- <field name="checkout" on_change="on_change_checkout(checkin,checkout)"/>
- <field name="adults"/>
- <field name="childs"/>
- <field name="dummy" invisible="True"/>
- <field name="reservation_line" colspan="4" nolabel="1">
- <form string="Reservation Line">
- <separator string="Room Type"/>
- <field name="categ_id" select="1" colspan="4" nolabel="1"/>
- <newline/>
- <separator string="Select Room "/>
- <field name="reserve" colspan="4" nolabel="1"/>
- </form>
- <tree string="Reservation Line">
- <field name="categ_id" select="1"/>
- <field name="reserve" colspan="4" string="No Of Rooms"/>
- </tree>
- </field>
- <group colspan="4">
- <field name="state"/>
- <button name="confirm" string="Confirm" states="draft" icon="gtk-ok"/>
- <button name="done" string="Create Folio" states="confirm" icon="gtk-go-forward"/>
- </group>
- </page>
- </notebook>
+ <form string="Reservation" version="7.0">
+ <header>
+ <button name="confirm" string="Confirm" states="draft" icon="gtk-ok"/>
+ <button name="done" string="Create Folio" states="confirm" icon="gtk-go-forward"/>
+ <field name="state" widget="statusbar"/>
+ </header>
+ <sheet>
+ <label string="Reservation No"/>
+ <h1>
+ <field name="reservation_no" class="oe_inline"/>
+ </h1>
+ <group>
+ <group colspan="4" col="4">
+ <field name="date_order" select="1"/>
+ <field name="shop_id" select="1"/>
+ </group>
+ <separator/>
+ <group colspan="4" col="4">
+ <field name="partner_id" on_change="onchange_partner_id(partner_id)" select="1" domain="[('customer','=',True)]"/>
+ <field name="pricelist_id" col="2"/>
+ <field name="partner_order_id" domain="[('parent_id','=',partner_id)]"/>
+ <field name="partner_invoice_id" domain="[('parent_id','=',partner_id)]"/>
+ <field name="partner_shipping_id" domain="[('parent_id','=',partner_id)]"/>
+ </group>
+ <group colspan="4" col="4">
+ <field name="checkin" on_change="on_change_checkin(date_order,checkin)"/>
+ <field name="checkout" on_change="on_change_checkout(checkin,checkout)"/>
+ <field name="adults"/>
+ <field name="children"/>
+ </group>
+ <field name="dummy" invisible="True"/>
+ </group>
+ <notebook>
+ <page string='Reservation Line'>
+ <field name="reservation_line" colspan="4" nolabel="1" >
+ <!-- context="{'in_date': parent.checkin, 'out_date': parent.checkout}" -->
+ <form string="Reservation Line">
+ <separator string="Room Type"/>
+ <field name="name" invisible="1" />
+ <field name="categ_id" on_change="on_change_categ(categ_id, parent.checkin, parent.checkout)" select="1" colspan="4" nolabel="1"/>
+ <newline/>
+ <separator string="Select Room"/>
+ <field name="reserve" colspan="4" string="Room Number" nolabel="1" />
+ </form>
+ <tree string="Reservation Line">
+ <field name="reserve" colspan="4" string="Rooms"/>
+ </tree>
+ </field>
+ </page>
+ <page string='History'>
+ <field name= 'folio_id' readonly='1'/>
+ </page>
+ </notebook>
+
+ </sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_hotel_reservation_tree">
<field name="name">hotel.reservation.tree</field>
<field name="model">hotel.reservation</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
- <tree string="Reservation" colors="blue:state=='draft' and checkin==current_date;red:state=='confirm' and checkout==current_date">
+ <tree string="Reservation" colors="blue:state == 'draft';gray:state == 'done'">
<field name="reservation_no"/>
<field name="partner_id" select="1"/>
<field name="checkin"/>
@@ -67,10 +84,9 @@
<record model="ir.ui.view" id="view_hotel_reservation_search">
<field name="name">hotel.reservation.search</field>
<field name="model">hotel.reservation</field>
- <field name="type">search</field>
<field name="arch" type="xml">
<search string="Reservation">
- <group>
+ <group string='Filters'>
<filter icon="terp-document-new" domain="[('state','=','draft')]" string="Draft"/>
<filter icon="terp-camera_test" domain="[('state','=','confirm')]" string="Confirm"/>
<filter icon="terp-dialog-close" domain="[('state','=','cancel')]" string="Cancel"/>
@@ -93,50 +109,17 @@
<record model="ir.ui.view" id="view_hotel_reservation_graph">
<field name="name">hotel.reservation.graph</field>
<field name="model">hotel.reservation</field>
- <field name="type">graph</field>
<field name="arch" type="xml">
- <graph string="Reservation" type="bar">
+ <graph string="Reservation" type="pie">
<field name="state"/>
<field name="reservation_no"/>
</graph>
</field>
</record>
-
-
- <record model="ir.actions.act_window" id="open_hotel_reservation_form_tree">
- <field name="name">Reservation</field>
- <field name="res_model">hotel.reservation</field>
- <field name="view_type">form</field>
- <field name="view_mode">form,tree</field>
- </record>
-
-
- <record model="ir.actions.act_window" id="action_hotel_reservation_tree_all">
- <field name="name">All Reservation</field>
- <field name="type">ir.actions.act_window</field>
- <field name="res_model">hotel.reservation</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- </record>
- <menuitem id="menu_hotel_reservation" name="Reservations" parent="hotel.hotel_management_menu" sequence="1"/>
-
- <menuitem name="All Reservations"
- id="menu_action_hotel_reservation_tree_all"
- action="action_hotel_reservation_tree_all"
- parent="menu_hotel_reservation"
- sequence="3"/>
-
- <menuitem name="New Reservation"
- id="menu_open_hotel_reservation_form_tree"
- action="open_hotel_reservation_form_tree"
- sequence="20"
- parent="menu_hotel_reservation"/>
-
<record model="ir.ui.view" id="hotel_calendar_view">
<field name="name">Room Reservation</field>
<field name="model">hotel.reservation</field>
- <field name="type">calendar</field>
<field name="priority" eval="2"/>
<field name="arch" type="xml">
<calendar string="Current Reservation" date_start="checkin" date_stop= "dummy" color="state" >
@@ -145,7 +128,152 @@
</field>
</record>
-
-
+ <record model="ir.ui.view" id="hotel_gantt_view">
+ <field name="name">hotel.gantt</field>
+ <field name="model">hotel.reservation</field>
+ <field name="priority" eval="2"/>
+ <field name="arch" type="xml">
+ <gantt date_start="checkin" date_stop="checkout" string="Reservation" default_group_by="partner_id">
+ </gantt>
+ </field>
+ </record>
+
+ <record model="ir.actions.act_window" id="action_hotel_reservation_tree_all">
+ <field name="name">Reservations</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">hotel.reservation</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form,gantt</field>
+ </record>
+
+ <menuitem id="menu_hotel_reservation" name="Reservations" parent="hotel.hotel_management_menu" sequence="1"/>
+
+ <menuitem name="Reservations"
+ id="menu_action_hotel_reservation_tree_all"
+ action="action_hotel_reservation_tree_all"
+ parent="menu_hotel_reservation"
+ sequence="3"/>
+
+ <record id="view_hotel_room_form_inherited" model="ir.ui.view">
+ <field name="name">view.hotel.room.form.inherited</field>
+ <field name="model">hotel.room</field>
+ <field name="inherit_id" ref="hotel.view_hotel_room_form" />
+ <field name="arch" type="xml">
+ <xpath expr="//page[@string='Information']" position="after">
+ <page string = "Room Reservation">
+ <separator colspan='4' string="Room Reservation Line" />
+ <field name="room_reservation_line_ids" colspan="4" nolabel='1' >
+ <form string=" Room line" version="7.0">
+ <group colspan='4' col='4'>
+ <field name="room_id"/>
+ <field name="check_in"/>
+ <field name="state"/>
+ <field name="check_out"/>
+ <field name="reservation_id" />
+ </group>
+ </form>
+ <tree>
+ <field name="room_id"/>
+ <field name="check_in"/>
+ <field name="check_out"/>
+ <field name="state"/>
+ <field name="reservation_id" />
+ </tree>
+ </field>
+ </page>
+ </xpath>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_hotel_folio1_form_inherited">
+ <field name="name">hotel.folio.form.inherited</field>
+ <field name="model">hotel.folio</field>
+ <field name="inherit_id" ref="hotel.view_hotel_folio1_form"/>
+ <field name="arch" type="xml">
+ <field name="shop_id" position='after'>
+ <field name="reservation_id" readonly='1'/>
+ </field>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_hotel_folio1_tree_inherited">
+ <field name="name">hotel.folio.tree.inherited</field>
+ <field name="model">hotel.folio</field>
+ <field name="inherit_id" ref="hotel.view_hotel_folio1_tree"/>
+ <field name="arch" type="xml">
+ <field name="name" position='after'>
+ <field name="reservation_id"/>
+ </field>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="room_reservation_summary_form_view">
+ <field name="name">room.reservation.summary.form</field>
+ <field name="model">room.reservation.summary</field>
+ <field name="arch" type="xml">
+ <form string="Reservation Summary" version="7.0">
+ <header>
+ <separator string="Room Reservation Summary" colspan="4"/>
+ </header>
+ <sheet>
+ <group colspan="4" col="4">
+ <label for="date_from" string="Summary Period"/>
+ <div><field name="date_from" class="oe_inline" on_change="get_room_summary(date_from, date_to)"/> to <field name="date_to" class="oe_inline" on_change="get_room_summary(date_from, date_to)" /></div>
+ </group>
+ <notebook>
+ <page string="Room Summary">
+ <field name="summary_header" colspan="4" invisible="1"/>
+ <field name="room_summary" colspan="4" invisible="1"/>
+ <widget type="Room_Reservation">
+ </widget>
+ </page>
+ </notebook>
+ </sheet>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="quick_room_reservation_form_view">
+ <field name="name">quick.room.reservation.form</field>
+ <field name="model">quick.room.reservation</field>
+ <field name="arch" type="xml">
+ <form string="Quick Reservation" version="7.0">
+ <header>
+ <separator string="Quick Reservation" colspan="4"/>
+ </header>
+ <sheet>
+ <group colspan="4" col="4">
+ <field name="partner_id" />
+ <field name="room_id" />
+ <field name="check_in"/>
+ <field name="check_out"/>
+ <field name="shop_id"/>
+ <field name="pricelist_id"/>
+ </group>
+ </sheet>
+ <footer>
+ <group colspan="2" col="2">
+ <button string="Save" name="room_reserve" type="object" icon="gtk-ok" />
+ <button string="Cancel" special="cancel" icon="gtk-cancel" />
+ </group>
+ </footer>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.actions.act_window" id="action_hotel_reservation_summary">
+ <field name="name">Room Reservations Summary</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">room.reservation.summary</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">form</field>
+ </record>
+
+ <menuitem name="Reservations Summary"
+ id="menu_action_hotel_reservation_summary"
+ action="action_hotel_reservation_summary"
+ parent="menu_hotel_reservation"
+ sequence="3"/>
</data>
+
</openerp>
=== added file 'hotel_reservation/hotel_scheduler.xml'
--- hotel_reservation/hotel_scheduler.xml 1970-01-01 00:00:00 +0000
+++ hotel_reservation/hotel_scheduler.xml 2014-04-18 16:01:07 +0000
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding='UTF-8'?>
+<openerp>
+ <data>
+ <record model="ir.cron" id="room_analytic_cron">
+ <field name="name">Room analysis</field>
+ <field name="interval_number">1</field>
+ <field name="interval_type">minutes</field>
+ <field name="numbercall">-1</field>
+ <field name="doall" eval="False"/>
+ <field name="model" eval="'hotel.room'"/>
+ <field name="function" eval="'cron_room_line'"/>
+ <field name="args" eval="'()'" />
+ </record>
+ </data>
+</openerp>
\ No newline at end of file
=== modified file 'hotel_reservation/i18n/da.po' (properties changed: -x to +x)
=== modified file 'hotel_reservation/i18n/es.po' (properties changed: -x to +x)
=== modified file 'hotel_reservation/i18n/hotel_reservation.pot' (properties changed: +x to -x)
--- hotel_reservation/i18n/hotel_reservation.pot 2012-05-18 07:39:13 +0000
+++ hotel_reservation/i18n/hotel_reservation.pot 2014-04-18 16:01:07 +0000
@@ -4,351 +4,536 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.6\n"
-"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
-"POT-Creation-Date: 2009-11-26 07:34:26+0000\n"
-"PO-Revision-Date: 2009-11-26 07:34:26+0000\n"
-"Last-Translator: <>\n"
+"Project-Id-Version: OpenERP Server 7.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-10-09 13:07+0000\n"
+"PO-Revision-Date: 2013-10-09 18:38+0530\n"
+"Last-Translator: Anil Kesariya <a.kesariya.serpentcs@xxxxxxxxx>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: \n"
+"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: \n"
#. module: hotel_reservation
+#: report:checkout.detail:0
+msgid "CheckOut Guest List"
+msgstr "CheckOut Guest List"
+
+#. module: hotel_reservation
+#: view:hotel.reservation:0
+msgid "Group By..."
+msgstr "Group By..."
+
+#. module: hotel_reservation
+#: report:checkout.detail:0
+msgid "#No"
+msgstr "#No"
+
+#. module: hotel_reservation
+#: report:reservation.detail:0
+msgid "Resevr# No"
+msgstr "Resevr# No"
+
+#. module: hotel_reservation
+#: view:quick.room.reservation:0
+msgid "Quick Reservation"
+msgstr "Quick Reservation"
+
+#. module: hotel_reservation
+#: view:room.reservation.summary:0
+msgid "to"
+msgstr "to"
+
+#. module: hotel_reservation
+#: model:ir.model,name:hotel_reservation.model_wizard_make_folio
+msgid "wizard.make.folio"
+msgstr "wizard.make.folio"
+
+#. module: hotel_reservation
+#: field:hotel.reservation,partner_shipping_id:0
+msgid "Delivery Address"
+msgstr "Delivery Address"
+
+#. module: hotel_reservation
+#: view:hotel.reservation:0
+#: view:wizard.make.folio:0
+msgid "Create Folio"
+msgstr "Create Folio"
+
+#. module: hotel_reservation
+#: model:ir.actions.report.xml,name:hotel_reservation.hotel_reservation_details
+msgid "Reservation Detail"
+msgstr "Reservation Detail"
+
+#. module: hotel_reservation
+#: view:hotel.reservation.wizard:0
+msgid "CheckIn List"
+msgstr "CheckIn List"
+
+#. module: hotel_reservation
+#: model:ir.model,name:hotel_reservation.model_hotel_room_reservation_line
+msgid "Hotel Room Reservation"
+msgstr "Hotel Room Reservation"
+
+#. module: hotel_reservation
+#: view:hotel.room:0
+msgid " Room line"
+msgstr " Room line"
+
+#. module: hotel_reservation
+#: field:hotel.reservation,shop_id:0
+msgid "Shop"
+msgstr "Shop"
+
+#. module: hotel_reservation
+#: field:hotel.reservation,partner_invoice_id:0
+msgid "Invoice Address"
+msgstr "Invoice Address"
+
+#. module: hotel_reservation
+#: view:hotel.reservation:0
+msgid "Room Number"
+msgstr "Room Number"
+
+#. module: hotel_reservation
+#: view:hotel.reservation.wizard:0
+msgid "CheckOut List"
+msgstr "CheckOut List"
+
+#. module: hotel_reservation
+#: help:hotel.reservation,pricelist_id:0
+msgid "Pricelist for current reservation. "
+msgstr "Pricelist for current reservation. "
+
+#. module: hotel_reservation
+#: report:checkout.detail:0
+#: report:reservation.detail:0
+msgid "Check-Out-Date"
+msgstr "Check-Out-Date"
+
+#. module: hotel_reservation
+#: model:ir.model,name:hotel_reservation.model_hotel_folio
+msgid "hotel folio new"
+msgstr "hotel folio new"
+
+#. module: hotel_reservation
+#: field:room.reservation.summary,room_summary:0
+msgid "Room summary"
+msgstr "Room summary"
+
+#. module: hotel_reservation
+#: field:wizard.make.folio,grouped:0
+msgid "Group the Folios"
+msgstr "Group the Folios"
+
+#. module: hotel_reservation
+#: view:hotel.reservation.wizard:0
+msgid "Room Used Maximum"
+msgstr "Room Used Maximum"
+
+#. module: hotel_reservation
#: field:hotel.reservation,folio_id:0
msgid "Folio"
-msgstr ""
-
-#. module: hotel_reservation
-#: rml:checkout.detail:0
-#: field:hotel.reservation,partner_id:0
-#: rml:reservation.detail:0
-msgid "Guest Name"
-msgstr ""
-
-#. module: hotel_reservation
-#: constraint:ir.model:0
-msgid "The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: hotel_reservation
-#: model:ir.actions.act_window,name:hotel_reservation.action_hotel_reservation_tree_draft
-#: model:ir.ui.menu,name:hotel_reservation.menu_action_hotel_reservation_tree_draft
-msgid "All Draft Reservation"
-msgstr ""
-
-#. module: hotel_reservation
-#: model:ir.actions.act_window,name:hotel_reservation.action_hotel_reservation_tree_confirm
-#: model:ir.ui.menu,name:hotel_reservation.menu_action_hotel_reservation_tree_confirm
-msgid "All Confirm Reservation"
-msgstr ""
+msgstr "Folio"
+
+#. module: hotel_reservation
+#: view:hotel.reservation:0
+#: selection:hotel.reservation,state:0
+msgid "Confirm"
+msgstr "Confirm"
#. module: hotel_reservation
#: field:hotel.reservation,checkout:0
msgid "Expected-Date-Departure"
-msgstr ""
-
-#. module: hotel_reservation
-#: model:ir.ui.menu,name:hotel_reservation.menu_open_hotel_reservation_form_tree
-msgid "New Reservation"
-msgstr ""
+msgstr "Expected-Date-Departure"
+
+#. module: hotel_reservation
+#: model:ir.actions.act_window,name:hotel_reservation.action_hotel_reservation_summary
+msgid "Room Reservations Summary"
+msgstr "Room Reservations Summary"
+
+#. module: hotel_reservation
+#: field:hotel.reservation,state:0
+msgid "State"
+msgstr "State"
+
+#. module: hotel_reservation
+#: field:quick.room.reservation,check_in:0
+msgid "Check In"
+msgstr "Check In"
+
+#. module: hotel_reservation
+#: view:quick.room.reservation:0
+msgid "Save"
+msgstr "Save"
+
+#. module: hotel_reservation
+#: field:hotel_reservation.line,name:0
+msgid "Name"
+msgstr "Name"
+
+#. module: hotel_reservation
+#: report:checkout.detail:0
+#: report:maxroom.detail:0
+msgid "\" To \""
+msgstr "\" To \""
+
+#. module: hotel_reservation
+#: field:hotel.room.reservation.line,state:0
+msgid "Room Status"
+msgstr "Room Status"
+
+#. module: hotel_reservation
+#: report:reservation.detail:0
+msgid "Room Detail"
+msgstr "Room Detail"
+
+#. module: hotel_reservation
+#: help:hotel.reservation,partner_shipping_id:0
+msgid "Delivery address for current reservation. "
+msgstr "Delivery address for current reservation. "
+
+#. module: hotel_reservation
+#: field:quick.room.reservation,check_out:0
+msgid "Check Out"
+msgstr "Check Out"
+
+#. module: hotel_reservation
+#: field:hotel.reservation,dummy:0
+msgid "Dummy"
+msgstr "Dummy"
+
+#. module: hotel_reservation
+#: report:checkout.detail:0
+#: report:maxroom.detail:0
+msgid "From \""
+msgstr "From \""
+
+#. module: hotel_reservation
+#: field:room.reservation.summary,date_to:0
+msgid "Date To"
+msgstr "Date To"
+
+#. module: hotel_reservation
+#: field:quick.room.reservation,pricelist_id:0
+msgid "pricelist"
+msgstr "pricelist"
+
+#. module: hotel_reservation
+#: model:ir.ui.menu,name:hotel_reservation.wizard_res_menu
+msgid "Hotel Reservation Report"
+msgstr "Hotel Reservation Report"
+
+#. module: hotel_reservation
+#: field:hotel.reservation,pricelist_id:0
+msgid "Price list"
+msgstr "Price list"
+
+#. module: hotel_reservation
+#: model:ir.actions.act_window,name:hotel_reservation.act_make_folio
+msgid "Make Folios"
+msgstr "Make Folios"
+
+#. module: hotel_reservation
+#: help:hotel.reservation,adults:0
+msgid "List of adults there in guest list. "
+msgstr "List of adults there in guest list. "
+
+#. module: hotel_reservation
+#: view:hotel.reservation.wizard:0
+#: model:ir.actions.act_window,name:hotel_reservation.action_hotel_reservation_wizard
+#: report:maxroom.detail:0
+#: report:reservation.detail:0
+msgid "Reservation List"
+msgstr "Reservation List"
+
+#. module: hotel_reservation
+#: help:hotel.reservation,reservation_line:0
+msgid "Hotel room reservation details. "
+msgstr "Hotel room reservation details. "
+
+#. module: hotel_reservation
+#: field:hotel_reservation.line,line_id:0
+#: field:hotel_reservation.line,reserve:0
+msgid "unknown"
+msgstr "unknown"
+
+#. module: hotel_reservation
+#: field:hotel.reservation.wizard,date_start:0
+msgid "Start Date"
+msgstr "Start Date"
+
+#. module: hotel_reservation
+#: field:quick.room.reservation,shop_id:0
+msgid "Hotel"
+msgstr "Hotel"
+
+#. module: hotel_reservation
+#: view:room.reservation.summary:0
+msgid "Reservation Summary"
+msgstr "Reservation Summary"
+
+#. module: hotel_reservation
+#: field:hotel.room.reservation.line,check_out:0
+msgid "Check Out Date"
+msgstr "Check Out Date"
#. module: hotel_reservation
#: view:hotel.reservation:0
#: selection:hotel.reservation,state:0
-msgid "Confirm"
-msgstr ""
-
-#. module: hotel_reservation
-#: selection:hotel.reservation,state:0
-msgid "Cancle"
-msgstr ""
-
-#. module: hotel_reservation
-#: wizard_field:hotel.reservation.report_reservation,init,date_end:0
-msgid "End Date"
-msgstr ""
-
-#. module: hotel_reservation
-#: selection:hotel.reservation,state:0
msgid "Draft"
-msgstr ""
-
-#. module: hotel_reservation
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: hotel_reservation
-#: model:ir.actions.act_window,name:hotel_reservation.action_hotel_reservation_tree_all
-#: model:ir.ui.menu,name:hotel_reservation.menu_action_hotel_reservation_tree_all
-msgid "All Reservation"
-msgstr ""
-
-#. module: hotel_reservation
-#: rml:checkout.detail:0
-msgid "#No"
-msgstr ""
-
-#. module: hotel_reservation
-#: rml:checkout.detail:0
-#: rml:maxroom.detail:0
-#: rml:reservation.detail:0
+msgstr "Draft"
+
+#. module: hotel_reservation
+#: field:room.reservation.summary,date_from:0
+msgid "Date From"
+msgstr "Date From"
+
+#. module: hotel_reservation
+#: report:checkout.detail:0
+#: report:maxroom.detail:0
msgid "Room No"
-msgstr ""
-
-#. module: hotel_reservation
-#: view:hotel.reservation:0
-msgid " Reservation"
-msgstr ""
-
-#. module: hotel_reservation
-#: rml:checkout.detail:0
+msgstr "Room No"
+
+#. module: hotel_reservation
+#: field:hotel.room.reservation.line,room_id:0
+msgid "Room id"
+msgstr "Room id"
+
+#. module: hotel_reservation
+#: view:hotel.room:0
+msgid "Room Reservation"
+msgstr "Room Reservation"
+
+#. module: hotel_reservation
+#: report:maxroom.detail:0
+msgid "No of Times used"
+msgstr "No of Times used"
+
+#. module: hotel_reservation
+#: report:checkout.detail:0
+#: view:hotel.reservation:0
+#: field:hotel.reservation,partner_id:0
+#: report:reservation.detail:0
+msgid "Guest Name"
+msgstr "Guest Name"
+
+#. module: hotel_reservation
+#: field:room.reservation.summary,summary_header:0
+msgid "Summary Header"
+msgstr "Summary Header"
+
+#. module: hotel_reservation
+#: model:ir.actions.report.xml,name:hotel_reservation.hotel_checkin_details
+msgid "CheckOut Detail"
+msgstr "CheckOut Detail"
+
+#. module: hotel_reservation
+#: view:hotel.reservation:0
+msgid "Current Reservation"
+msgstr "Current Reservation"
+
+#. module: hotel_reservation
+#: field:hotel.reservation,checkin:0
+msgid "Expected-Date-Arrival"
+msgstr "Expected-Date-Arrival"
+
+#. module: hotel_reservation
+#: model:ir.model,name:hotel_reservation.model_hotel_reservation_wizard
+msgid "hotel.reservation.wizard"
+msgstr "hotel.reservation.wizard"
+
+#. module: hotel_reservation
+#: field:hotel.room.reservation.line,reservation_id:0
+msgid "Reservation id"
+msgstr "Reservation id"
+
+#. module: hotel_reservation
+#: report:reservation.detail:0
+msgid "Check-In-Date"
+msgstr "Check-In-Date"
+
+#. module: hotel_reservation
+#: view:hotel.reservation:0
+msgid "History"
+msgstr "History"
+
+#. module: hotel_reservation
+#: view:room.reservation.summary:0
+msgid "Room Reservation Summary"
+msgstr "Room Reservation Summary"
+
+#. module: hotel_reservation
+#: view:room.reservation.summary:0
+msgid "Summary Period"
+msgstr "Summary Period"
+
+#. module: hotel_reservation
+#: selection:hotel.room.reservation.line,state:0
+msgid "Assigned"
+msgstr "Assigned"
+
+#. module: hotel_reservation
+#: selection:hotel.room.reservation.line,state:0
+msgid "Unassigned"
+msgstr "Unassigned"
+
+#. module: hotel_reservation
+#: view:hotel.reservation:0
+#: selection:hotel.reservation,state:0
+msgid "Done"
+msgstr "Done"
+
+#. module: hotel_reservation
+#: view:hotel.reservation:0
+#: selection:hotel.reservation,state:0
+#: view:hotel.reservation.wizard:0
+#: view:quick.room.reservation:0
+#: view:wizard.make.folio:0
+msgid "Cancel"
+msgstr "Cancel"
+
+#. module: hotel_reservation
+#: field:hotel.reservation,children:0
+msgid "Children"
+msgstr "Children"
+
+#. module: hotel_reservation
+#: help:hotel.reservation,partner_invoice_id:0
+msgid "Invoice address for current reservation. "
+msgstr "Invoice address for current reservation. "
+
+#. module: hotel_reservation
+#: view:room.reservation.summary:0
+msgid "Room Summary"
+msgstr "Room Summary"
+
+#. module: hotel_reservation
+#: view:hotel.reservation:0
+msgid "Select Room"
+msgstr "Select Room"
+
+#. module: hotel_reservation
+#: view:hotel.room:0
+msgid "Room Reservation Line"
+msgstr "Room Reservation Line"
+
+#. module: hotel_reservation
+#: report:checkout.detail:0
#: view:hotel.reservation:0
#: field:hotel_reservation.line,categ_id:0
-#: rml:reservation.detail:0
msgid "Room Type"
-msgstr ""
+msgstr "Room Type"
#. module: hotel_reservation
#: field:hotel.reservation,partner_order_id:0
msgid "Ordering Contact"
-msgstr ""
+msgstr "Ordering Contact"
#. module: hotel_reservation
+#: view:hotel.reservation:0
#: field:hotel.reservation,reservation_no:0
msgid "Reservation No"
-msgstr ""
-
-#. module: hotel_reservation
-#: view:hotel.reservation:0
-msgid "Select Room "
-msgstr ""
-
-#. module: hotel_reservation
-#: rml:checkout.detail:0
-msgid "CheckOut Guest List"
-msgstr ""
-
-#. module: hotel_reservation
-#: model:ir.actions.act_window,name:hotel_reservation.action_hotel_reservation_tree_done
-#: model:ir.ui.menu,name:hotel_reservation.menu_action_hotel_reservation_tree_done
-msgid "All Done Reservation"
-msgstr ""
-
-#. module: hotel_reservation
-#: field:hotel.reservation,partner_shipping_id:0
-msgid "Shipping Address"
-msgstr ""
-
-#. module: hotel_reservation
-#: wizard_button:hotel.reservation.report_reservation,init,print_checkin:0
-msgid "CheckIn List"
-msgstr ""
-
-#. module: hotel_reservation
-#: field:hotel_reservation.line,line_id:0
-#: field:hotel_reservation.line,reserve:0
-msgid "unknown"
-msgstr ""
-
-#. module: hotel_reservation
-#: field:hotel.reservation,checkin:0
-msgid "Expected-Date-Arrival"
-msgstr ""
-
-#. module: hotel_reservation
-#: model:ir.actions.report.xml,name:hotel_reservation.hotel_checkin_details
-msgid "CheckOut Detail"
-msgstr ""
-
-#. module: hotel_reservation
-#: view:hotel.reservation:0
-#: model:ir.actions.act_window,name:hotel_reservation.open_hotel_reservation_form_tree
+msgstr "Reservation No"
+
+#. module: hotel_reservation
+#: help:hotel.reservation,children:0
+msgid "Number of children there in guest list. "
+msgstr "Number of children there in guest list. "
+
+#. module: hotel_reservation
+#: model:ir.model,name:hotel_reservation.model_room_reservation_summary
+msgid "room.reservation.summary"
+msgstr "room.reservation.summary"
+
+#. module: hotel_reservation
+#: model:ir.ui.menu,name:hotel_reservation.menu_action_hotel_reservation_summary
+msgid "Reservations Summary"
+msgstr "Reservations Summary"
+
+#. module: hotel_reservation
+#: model:ir.model,name:hotel_reservation.model_quick_room_reservation
+msgid "quick.room.reservation"
+msgstr "quick.room.reservation"
+
+#. module: hotel_reservation
+#: view:hotel.reservation:0
#: model:ir.model,name:hotel_reservation.model_hotel_reservation
msgid "Reservation"
-msgstr ""
-
-#. module: hotel_reservation
-#: field:hotel.reservation,pricelist_id:0
-msgid "Pricelist"
-msgstr ""
-
-#. module: hotel_reservation
-#: view:hotel.reservation:0
-msgid "No Of Rooms"
-msgstr ""
-
-#. module: hotel_reservation
-#: view:hotel.reservation:0
-msgid "Current Reservation"
-msgstr ""
-
-#. module: hotel_reservation
-#: field:hotel.reservation,dummy:0
-msgid "Dummy"
-msgstr ""
-
-#. module: hotel_reservation
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: hotel_reservation
-#: model:ir.actions.report.xml,name:hotel_reservation.hotel_reservation_details
-msgid "Reservation Detail"
-msgstr ""
-
-#. module: hotel_reservation
-#: wizard_button:hotel.folio.make_folio,init,folio:0
-msgid "Create Folios"
-msgstr ""
-
-#. module: hotel_reservation
-#: model:ir.module.module,description:hotel_reservation.module_meta_information
-msgid "\n"
-" Module for Hotel/Resort/Property management. You can manage:\n"
-" * Guest Reservation\n"
-" * Group Reservartion\n"
-" Different reports are also provided, mainly for hotel statistics.\n"
-" "
-msgstr ""
-
-#. module: hotel_reservation
-#: field:hotel.reservation,shop_id:0
-msgid "Shop"
-msgstr ""
+msgstr "Reservation"
+
+#. module: hotel_reservation
+#: help:hotel.reservation,partner_order_id:0
+msgid "The name and address of the contact that requested the order or quotation."
+msgstr "The name and address of the contact that requested the order or quotation."
+
+#. module: hotel_reservation
+#: field:quick.room.reservation,partner_id:0
+msgid "Customer"
+msgstr "Customer"
+
+#. module: hotel_reservation
+#: field:hotel.reservation.wizard,date_end:0
+msgid "End Date"
+msgstr "End Date"
+
+#. module: hotel_reservation
+#: field:quick.room.reservation,room_id:0
+msgid "Room"
+msgstr "Room"
#. module: hotel_reservation
#: field:hotel.reservation,date_order:0
msgid "Date Ordered"
-msgstr ""
-
-#. module: hotel_reservation
-#: rml:reservation.detail:0
-msgid "Resevation No"
-msgstr ""
+msgstr "Date Ordered"
#. module: hotel_reservation
#: model:ir.actions.report.xml,name:hotel_reservation.max_hotel_room
msgid "Max Room Detail"
-msgstr ""
-
-#. module: hotel_reservation
-#: model:ir.actions.wizard,name:hotel_reservation.wizard_hotel_folio_make_folio
-msgid "Make Folios"
-msgstr ""
-
-#. module: hotel_reservation
-#: rml:reservation.detail:0
-msgid "Check-In-Date"
-msgstr ""
-
-#. module: hotel_reservation
-#: model:ir.module.module,shortdesc:hotel_reservation.module_meta_information
-msgid "Hotel Reservation"
-msgstr ""
-
-#. module: hotel_reservation
-#: model:ir.ui.menu,name:hotel_reservation.wizard_res_menu
-msgid "Hotel Reservation Report"
-msgstr ""
-
-#. module: hotel_reservation
-#: wizard_view:hotel.folio.make_folio,init:0
-#: view:hotel.reservation:0
-msgid "Create Folio"
-msgstr ""
+msgstr "Max Room Detail"
#. module: hotel_reservation
#: view:hotel.reservation:0
#: field:hotel.reservation,reservation_line:0
#: model:ir.model,name:hotel_reservation.model_hotel_reservation_line
msgid "Reservation Line"
-msgstr ""
-
-#. module: hotel_reservation
-#: field:hotel.reservation,partner_invoice_id:0
-msgid "Invoice Address"
-msgstr ""
-
-#. module: hotel_reservation
-#: field:hotel.reservation,childs:0
-msgid "Children"
-msgstr ""
+msgstr "Reservation Line"
#. module: hotel_reservation
#: field:hotel.reservation,adults:0
msgid "Adults"
-msgstr ""
-
-#. module: hotel_reservation
-#: wizard_button:hotel.reservation.report_reservation,init,print_checkout:0
-msgid "CheckOut List"
-msgstr ""
-
-#. module: hotel_reservation
-#: wizard_view:hotel.reservation.report_reservation,init:0
-#: wizard_button:hotel.reservation.report_reservation,init,print_report:0
-#: rml:reservation.detail:0
-msgid "Reservation List"
-msgstr ""
-
-#. module: hotel_reservation
-#: field:hotel.reservation,state:0
-msgid "State"
-msgstr ""
-
-#. module: hotel_reservation
-#: rml:checkout.detail:0
-#: rml:reservation.detail:0
-msgid "Check-Out-Date"
-msgstr ""
-
-#. module: hotel_reservation
-#: model:ir.actions.wizard,name:hotel_reservation.wizard_hotel_reservation_report_reservation
-msgid "Reservation Details"
-msgstr ""
-
-#. module: hotel_reservation
-#: selection:hotel.reservation,state:0
-msgid "Done"
-msgstr ""
-
-#. module: hotel_reservation
-#: help:hotel.reservation,partner_order_id:0
-msgid "The name and address of the contact that requested the order or quotation."
-msgstr ""
-
-#. module: hotel_reservation
-#: rml:maxroom.detail:0
-msgid "No of Times used"
-msgstr ""
-
-#. module: hotel_reservation
-#: wizard_button:hotel.folio.make_folio,init,end:0
-#: wizard_button:hotel.reservation.report_reservation,init,end:0
-msgid "Cancel"
-msgstr ""
-
-#. module: hotel_reservation
-#: wizard_field:hotel.reservation.report_reservation,init,date_start:0
-msgid "Start Date"
-msgstr ""
-
-#. module: hotel_reservation
-#: wizard_button:hotel.reservation.report_reservation,init,print_room_used:0
-msgid "Room Used Maximum"
-msgstr ""
-
-#. module: hotel_reservation
-#: wizard_field:hotel.folio.make_folio,init,grouped:0
-msgid "Group the Folios"
-msgstr ""
-
-#. module: hotel_reservation
-#: wizard_view:hotel.folio.make_folio,init:0
+msgstr "Adults"
+
+#. module: hotel_reservation
+#: model:ir.actions.act_window,name:hotel_reservation.action_hotel_reservation_tree_all
+#: model:ir.ui.menu,name:hotel_reservation.menu_action_hotel_reservation_tree_all
+#: model:ir.ui.menu,name:hotel_reservation.menu_hotel_reservation
+msgid "Reservations"
+msgstr "Reservations"
+
+#. module: hotel_reservation
+#: field:hotel.folio,reservation_id:0
+msgid "Reservation Id"
+msgstr "Reservation Id"
+
+#. module: hotel_reservation
+#: view:hotel.reservation:0
+msgid "Rooms"
+msgstr "Rooms"
+
+#. module: hotel_reservation
+#: view:hotel.reservation:0
+msgid "Filters"
+msgstr "Filters"
+
+#. module: hotel_reservation
+#: field:hotel.room.reservation.line,check_in:0
+msgid "Check In Date"
+msgstr "Check In Date"
+
+#. module: hotel_reservation
+#: view:wizard.make.folio:0
msgid "Do you really want to create the Folio ?"
-msgstr ""
+msgstr "Do you really want to create the Folio ?"
=== modified file 'hotel_reservation/i18n/sv.po' (properties changed: -x to +x)
=== modified file 'hotel_reservation/report/__init__.py'
--- hotel_reservation/report/__init__.py 2012-05-18 07:39:13 +0000
+++ hotel_reservation/report/__init__.py 2014-04-18 16:01:07 +0000
@@ -1,23 +1,24 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import hotel_reservation_report
+from . import hotel_reservation_report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_reservation/report/checkinlist.rml'
--- hotel_reservation/report/checkinlist.rml 2012-05-18 07:39:13 +0000
+++ hotel_reservation/report/checkinlist.rml 2014-04-18 16:01:07 +0000
@@ -44,7 +44,8 @@
<paraStyle name="P7" fontName="Helvetica" fontSize="14.0" leading="17" alignment="CENTER"/>
<paraStyle name="P8" fontName="Helvetica" fontSize="12.0" leading="15" alignment="RIGHT"/>
<paraStyle name="P9" fontName="Helvetica" fontSize="11.0" leading="14" alignment="CENTER" backColor="#c0c0c0"/>
- <paraStyle name="P10" fontName="Helvetica" fontSize="11.0" leading="14" alignment="LEFT"/>
+ <paraStyle name="P10" fontName="Helvetica" fontSize="9.0" leading="14" alignment="CENTER"/>
+ <paraStyle name="P11" fontName="Helvetica-Bold" fontSize="12.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
@@ -55,14 +56,26 @@
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER"/>
</stylesheet>
<story>
+ <para style="P4">
+ <font color="white"> </font>
+ </para>
+ <para style="P4">
+ <font color="white"> </font>
+ </para>
<blockTable colWidths="482.0" style="Table2">
<tr>
<td>
- <para style="P8">Check-In Guest List</para>
- <para style="P10">From [[ data['form']['date_start'] ]] to [[ data['form']['date_end'] ]] </para>
+ <para style="P11">Check-In Guest List</para>
+ <para style="P4">
+ <font color="white"> </font>
+ </para>
+ <para style="P10"><b>From "</b>[[ formatLang(data['form']['date_start'],date=True) ]]<b>" To "</b>[[ formatLang(data['form']['date_end'],date=True) ]]<b>"</b></para>
</td>
</tr>
</blockTable>
+ <para style="P4">
+ <font color="white"> </font>
+ </para>
<blockTable colWidths="64.0,147.0,106.0,72.0,92.0" style="Table1">
<tr>
<td>
@@ -90,27 +103,15 @@
<para style="P3">[[o.partner_id.name]]</para>
</td>
<td>
- <para style="P3">[[o.checkin]]</para>
- </td>
- <td>
- <blockTable colWidths="70.0,89.0" style="Table3">
- <tr>
- <td>
- <para style="P5">[[repeatIn(o.reservation_line,'r')]]<font face="Helvetica">[[r.categ_id.name]]</font></para>
- </td>
- <td>
- <blockTable colWidths="83.0" style="Table4">
- <tr>
- <td>
- <para style="P5">[[repeatIn(r.reserve,'p')]]<font face="Helvetica">[[p.name]]</font></para>
- </td>
- </tr>
- </blockTable>
- </td>
- </tr>
- </blockTable>
- </td>
- </tr>
+ <para style="P3">[[formatLang(o.checkin, date=True)]]</para>
+ </td>
+ <td>
+ <para style="P5">[[ get_room_type(o.reservation_line) ]]</para>
+ </td>
+ <td>
+ <para style="P5">[[ get_room_nos(o.reservation_line) ]]</para>
+ </td>
+ </tr>
</blockTable>
</story>
=== modified file 'hotel_reservation/report/checkoutlist.rml'
--- hotel_reservation/report/checkoutlist.rml 2012-05-18 07:39:13 +0000
+++ hotel_reservation/report/checkoutlist.rml 2014-04-18 16:01:07 +0000
@@ -18,11 +18,11 @@
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
- <blockBackground colorName="#9999cc" start="0,0" stop="0,0"/>
- <blockBackground colorName="#9999cc" start="1,0" stop="1,0"/>
- <blockBackground colorName="#9999cc" start="2,0" stop="2,0"/>
- <blockBackground colorName="#9999cc" start="3,0" stop="3,0"/>
- <blockBackground colorName="#9999cc" start="4,0" stop="4,0"/>
+ <blockBackground colorName="#c0c0c0" start="0,0" stop="0,0"/>
+ <blockBackground colorName="#c0c0c0" start="1,0" stop="1,0"/>
+ <blockBackground colorName="#c0c0c0" start="2,0" stop="2,0"/>
+ <blockBackground colorName="#c0c0c0" start="3,0" stop="3,0"/>
+ <blockBackground colorName="#c0c0c0" start="4,0" stop="4,0"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
@@ -42,7 +42,9 @@
<paraStyle name="P5" fontName="Helvetica" fontSize="8.0" leading="11" alignment="LEFT"/>
<paraStyle name="P6" fontName="Helvetica" fontSize="8.0" leading="11" alignment="CENTER"/>
<paraStyle name="P7" fontName="Helvetica" fontSize="8.0" leading="15" alignment="LEFT"/>
- <paraStyle name="P8" fontName="Times-Bold" fontSize="11.0" leading="14" alignment="CENTER" backColor="#9999cc"/>
+ <paraStyle name="P8" fontName="Times-Bold" fontSize="11.0" leading="14" alignment="CENTER" backColor="#c0c0c0"/>
+ <paraStyle name="P9" fontName="Helvetica" fontSize="10.0" leading="15" alignment="CENTER"/>
+ <paraStyle name="P11" fontName="Helvetica-Bold" fontSize="12.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
@@ -53,13 +55,26 @@
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER"/>
</stylesheet>
<story>
+ <para style="P4">
+ <font color="white"> </font>
+ </para>
+ <para style="P4">
+ <font color="white"> </font>
+ </para>
<blockTable colWidths="482.0" style="Table2">
<tr>
<td>
- <para style="P1">CheckOut Guest List</para>
+ <para style="P11">CheckOut Guest List</para>
</td>
</tr>
</blockTable>
+ <para style="P4">
+ <font color="white"> </font>
+ </para>
+ <para style="P9"><b>From "</b>[[ formatLang(data['form']['date_start'],date=True) ]]<b>" To "</b>[[ formatLang(data['form']['date_end'],date=True) ]]<b>"</b></para>
+ <para style="P4">
+ <font color="white"> </font>
+ </para>
<blockTable colWidths="63.0,147.0,106.0,72.0,92.0" style="Table1">
<tr>
<td>
@@ -84,28 +99,16 @@
<para style="P6">[[o.reservation_no]]</para>
</td>
<td>
- <para style="P4">[[o.partner_id.name]]</para>
- </td>
- <td>
- <para style="P4">[[o.checkout]]</para>
- </td>
- <td>
- <blockTable colWidths="79.0,79.0" style="Table3">
- <tr>
- <td>
- <para style="P7">[[repeatIn(o.reservation_line,'r')]]<font face="Helvetica">[[r.categ_id.name]]</font></para>
- </td>
- <td>
- <blockTable colWidths="74.0" style="Table4">
- <tr>
- <td>
- <para style="P7">[[repeatIn(r.reserve,'p')]]<font face="Helvetica">[[p.name]]</font></para>
- </td>
- </tr>
- </blockTable>
- </td>
- </tr>
- </blockTable>
+ <para style="P4">[[ o.partner_id.name ]]</para>
+ </td>
+ <td>
+ <para style="P4">[[ formatLang(o.checkout, date="True") ]]</para>
+ </td>
+ <td>
+ <para style="P5">[[get_room_type(o.reservation_line)]]</para>
+ </td>
+ <td>
+ <para style="P5">[[get_room_nos(o.reservation_line)]]</para>
</td>
</tr>
</blockTable>
=== modified file 'hotel_reservation/report/hotel_reservation_report.py'
--- hotel_reservation/report/hotel_reservation_report.py 2012-05-18 07:39:13 +0000
+++ hotel_reservation/report/hotel_reservation_report.py 2014-04-18 16:01:07 +0000
@@ -1,28 +1,28 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
import time
-from report import report_sxw
-import datetime
-import pooler
+from openerp.report import report_sxw
+
class reservation_detail_report(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(reservation_detail_report, self).__init__(cr, uid, name, context)
@@ -31,46 +31,78 @@
'get_data': self.get_data,
'get_checkin': self.get_checkin,
'get_checkout': self.get_checkout,
- 'get_room':self.get_room,
-
+# 'get_room':self.get_room,
+ 'get_room_type':self._get_room_type,
+ 'get_room_nos':self._get_room_nos,
+ 'get_room_used_detail':self._get_room_used_detail,
})
self.context=context
-
- def get_data(self,date_start,date_end):
- tids = self.pool.get('hotel.reservation').search(self.cr,self.uid,[('checkin', '>=', date_start),('checkout', '<=', date_end)])
- res = self.pool.get('hotel.reservation').browse(self.cr,self.uid,tids)
- return res
-
- def get_checkin(self,date_start,date_end):
- tids = self.pool.get('hotel.reservation').search(self.cr,self.uid,[('checkin', '>=', date_start),('checkin', '<=', date_end)])
- res = self.pool.get('hotel.reservation').browse(self.cr,self.uid,tids)
- return res
-
+
+ def _get_room_type(self, reservation_line):
+ room_types = ''
+ for line in reservation_line:
+ if line.categ_id:
+ room_types += line.categ_id.name
+ room_types += ' '
+
+ return room_types
+
+ def _get_room_nos(self, reservation_line):
+ room_nos = ''
+ for line in reservation_line:
+ for room in line.reserve:
+ room_nos += room.name
+ room_nos += ' '
+ return room_nos
+
+ def get_data(self, date_start, date_end):
+ reservation_obj = self.pool.get('hotel.reservation')
+ tids = reservation_obj.search(self.cr, self.uid, [('checkin', '>=', date_start), ('checkout', '<=', date_end)])
+ res = reservation_obj.browse(self.cr, self.uid, tids)
+ return res
+
+ def get_checkin(self, date_start, date_end):
+ reservation_obj = self.pool.get('hotel.reservation')
+ tids = reservation_obj.search(self.cr, self.uid, [('checkin', '>=', date_start), ('checkin', '<=', date_end)])
+ res = reservation_obj.browse(self.cr, self.uid, tids)
+ return res
+
def get_checkout(self,date_start,date_end):
- tids = self.pool.get('hotel.reservation').search(self.cr,self.uid,[('checkout', '>=', date_start),('checkout', '<=', date_end)])
- res = self.pool.get('hotel.reservation').browse(self.cr,self.uid,tids)
+ reservation_obj = self.pool.get('hotel.reservation')
+ tids = reservation_obj.search(self.cr,self.uid,[('checkout', '>=', date_start),('checkout', '<=', date_end)])
+ res = reservation_obj.browse(self.cr,self.uid,tids)
return res
-
- def get_room(self,date_start,date_end):
-
- self.cr.execute("select pt.name,count(pt.name) as No_of_times from hotel_reservation as hr " \
- "inner join hotel_reservation_line as hrl on hrl.line_id=hr.id " \
- "inner join hotel_reservation_line_room_rel as hrlrr on hrlrr.room_id=hrl.id " \
- "inner join product_product as pp on pp.product_tmpl_id=hrlrr.hotel_reservation_line_id " \
- "inner join product_template as pt on pt.id=pp.product_tmpl_id " \
- "where hr.state<>'draft' and hr.checkin >= %s and hr.checkout <= %s group by pt.name " \
- ,(date_start,date_end)
-
- )
- res2=self.cr.dictfetchall()
- return res2
-
-
-
-report_sxw.report_sxw('report.reservation.detail', 'hotel.reservation', 'addons/hotel_reservation/report/room_res.rml',parser= reservation_detail_report)
-report_sxw.report_sxw('report.checkin.detail', 'hotel.reservation', 'addons/hotel_reservation/report/checkinlist.rml',parser= reservation_detail_report)
-report_sxw.report_sxw('report.checkout.detail', 'hotel.reservation', 'addons/hotel_reservation/report/checkoutlist.rml',parser= reservation_detail_report)
-report_sxw.report_sxw('report.maxroom.detail', 'hotel.reservation', 'addons/hotel_reservation/report/maxroom.rml',parser= reservation_detail_report)
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
\ No newline at end of file
+
+ def _get_room_used_detail(self, date_start, date_end):
+ room_used_details = []
+ hotel_room_obj = self.pool.get('hotel.room')
+ room_ids = hotel_room_obj.search(self.cr, self.uid, [])
+ for room in hotel_room_obj.browse(self.cr, self.uid, room_ids):
+ counter = 0
+ details = {}
+ if room.room_reservation_line_ids:
+ for room_resv_line in room.room_reservation_line_ids:
+ if room_resv_line.check_in >= date_start and room_resv_line.check_in <= date_end:
+ counter += 1
+ if counter >= 1:
+ details.update({'name': room.name or '', 'no_of_times_used': counter})
+ room_used_details.append(details)
+ return room_used_details
+
+# def get_room(self, date_start, date_end):
+# self.cr.execute("select pt.name,count(pt.name) as No_of_times from hotel_reservation as hr " \
+# "inner join hotel_reservation_line as hrl on hrl.line_id=hr.id " \
+# "inner join hotel_reservation_line_room_rel as hrlrr on hrlrr.room_id=hrl.id " \
+# "inner join product_product as pp on pp.product_tmpl_id=hrlrr.hotel_reservation_line_id " \
+# "inner join product_template as pt on pt.id=pp.product_tmpl_id " \
+# "where hr.state<>'draft' and hr.checkin >= %s and hr.checkout <= %s group by pt.name " \
+# ,(date_start,date_end))
+# res2=self.cr.dictfetchall()
+# return res2
+
+report_sxw.report_sxw('report.reservation.detail', 'hotel.reservation', 'addons/hotel_reservation/report/room_res.rml', parser=reservation_detail_report)
+report_sxw.report_sxw('report.checkin.detail', 'hotel.reservation', 'addons/hotel_reservation/report/checkinlist.rml', parser=reservation_detail_report)
+report_sxw.report_sxw('report.checkout.detail', 'hotel.reservation', 'addons/hotel_reservation/report/checkoutlist.rml', parser=reservation_detail_report)
+report_sxw.report_sxw('report.maxroom.detail', 'hotel.reservation', 'addons/hotel_reservation/report/maxroom.rml', parser=reservation_detail_report)
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_reservation/report/maxroom.rml'
--- hotel_reservation/report/maxroom.rml 2012-05-18 07:39:13 +0000
+++ hotel_reservation/report/maxroom.rml 2014-04-18 16:01:07 +0000
@@ -10,20 +10,27 @@
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
+ <blockTableStyle id="Table1">
+ <blockAlignment value="LEFT"/>
+ <blockValign value="TOP"/>
+ </blockTableStyle>
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
+ <lineStyle kind="GRID" colorName="black"/>
<blockBackground colorName="#c0c0c0" start="0,0" stop="0,0"/>
<blockBackground colorName="#c0c0c0" start="1,0" stop="1,0"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
- <paraStyle name="P1" fontName="Times-Roman" fontSize="15.0" leading="19" spaceBefore="0.0" spaceAfter="6.0"/>
- <paraStyle name="P2" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="0.0" spaceAfter="6.0"/>
- <paraStyle name="P3" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
+ <paraStyle name="P0B" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER"/>
+ <paraStyle name="P1" fontName="Times-Roman" fontSize="15.0" leading="19" />
+ <paraStyle name="P2" fontName="Times-Roman" fontSize="12.0" leading="15" />
+ <paraStyle name="P3" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="CENTER" />
<paraStyle name="P4" fontName="Times-Bold" fontSize="11.0" leading="14" alignment="CENTER"/>
<paraStyle name="P5" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="CENTER"/>
+ <paraStyle name="P6" fontName="Helvetica" fontSize="10.0" leading="15" alignment="CENTER"/>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
@@ -33,7 +40,26 @@
<paraStyle name="Table Contents" fontName="Times-Roman"/>
</stylesheet>
<story>
- <para style="Text body">[[repeatIn('objects','o')]]</para>
+ <para style="P1">
+ <font color="white"> </font>
+ </para>
+ <para style="P3">
+ <font color="white"> </font>
+ </para>
+ <blockTable colWidths="482.0" style="Table1">
+ <tr>
+ <td>
+ <para style="P0B">Room Used Maximum</para>
+ </td>
+ </tr>
+ </blockTable>
+ <para style="P2">
+ <font color="white"> </font>
+ </para>
+ <para style="P6"><b>From "</b>[[ formatLang(data['form']['date_start'],date=True) ]]<b>" To "</b>[[ formatLang(data['form']['date_end'],date=True) ]]<b>"</b></para>
+ <para style="P2">
+ <font color="white"> </font>
+ </para>
<blockTable colWidths="241.0,241.0" style="Table2">
<tr>
<td>
@@ -44,12 +70,13 @@
</td>
</tr>
<tr>
+ <para style="Text body">[[repeatIn('objects','o')]]</para>
+ <para style="P3">[[ repeatIn(get_room_used_detail(data['form']['date_start'],data['form']['date_end']),'detail') ]]</para>
<td>
- <para style="P3">[[ repeatIn(get_room(data['form']['date_start'],data['form']['date_end']),'o') ]]</para>
- <para style="P3">[[o['name'] ]]</para>
+ <para style="P3">[[detail['name'] ]]</para>
</td>
<td>
- <para style="P5">[[o['no_of_times'] ]]</para>
+ <para style="P3">[[detail['no_of_times_used'] ]]</para>
</td>
</tr>
</blockTable>
=== modified file 'hotel_reservation/report/room_res.rml'
--- hotel_reservation/report/room_res.rml 2012-05-18 07:39:13 +0000
+++ hotel_reservation/report/room_res.rml 2014-04-18 16:01:07 +0000
@@ -13,108 +13,102 @@
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
-
</blockTableStyle>
<blockTableStyle id="Table1">
- <blockAlignment value="LEFT"/>
- <blockValign value="TOP"/>
- <lineStyle kind="GRID" colorName="black"/>
- <blockBackground colorName="#cccccc" start="0,0" stop="0,0"/>
- <blockBackground colorName="#cccccc" start="1,0" stop="1,0"/>
- <blockBackground colorName="#cccccc" start="2,0" stop="2,0"/>
- <blockBackground colorName="#cccccc" start="3,0" stop="3,0"/>
- <blockBackground colorName="#cccccc" start="4,0" stop="4,0"/>
- <blockBackground colorName="#cccccc" start="5,0" stop="5,0"/>
- </blockTableStyle>
- <blockTableStyle id="Table3">
- <blockAlignment value="LEFT"/>
- <blockValign value="TOP"/>
- </blockTableStyle>
- <blockTableStyle id="Table4">
- <blockAlignment value="LEFT"/>
- <blockValign value="TOP"/>
+ <blockAlignment value="LEFT"/>
+ <blockValign value="TOP"/>
+ <lineStyle kind="GRID" colorName="black"/>
+ <blockBackground colorName="#c0c0c0" start="0,0" stop="0,0"/>
+ <blockBackground colorName="#c0c0c0" start="1,0" stop="1,0"/>
+ <blockBackground colorName="#c0c0c0" start="2,0" stop="2,0"/>
+ <blockBackground colorName="#c0c0c0" start="3,0" stop="3,0"/>
+ <blockBackground colorName="#c0c0c0" start="4,0" stop="4,0"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
- <paraStyle name="P1" fontName="Helvetica" fontSize="8.0" leading="15"/>
- <paraStyle name="P2" fontName="Helvetica" fontSize="8.0" leading="15"/>
- <paraStyle name="P3" fontName="Helvetica" fontSize="9.0" leading="14" alignment="CENTER"/>
- <paraStyle name="P4" fontName="Helvetica" fontSize="8.0" leading="14" alignment="LEFT"/>
- <paraStyle name="P5" fontName="Helvetica" fontSize="8.0" leading="15" alignment="LEFT"/>
- <paraStyle name="P6" fontName="Helvetica" fontSize="8.0" leading="13"/>
- <paraStyle name="P7" fontName="Helvetica" fontSize="8.0" leading="14" alignment="LEFT"/>
- <paraStyle name="P8" fontName="Helvetica" fontSize="12.0" leading="15" alignment="RIGHT"/>
- <paraStyle name="P9" fontName="Helvetica" fontSize="8.0" leading="15"/>
+ <paraStyle name="P1" fontName="Helvetica"/>
+ <paraStyle name="P2" fontName="Helvetica" fontSize="12.0" leading="15"/>
+ <paraStyle name="P3" fontName="Helvetica" fontSize="12.0" leading="15"/>
+ <paraStyle name="P3B" fontName="Helvetica-Bold" fontSize="10.0" leading="15"/>
+ <paraStyle name="P4" fontName="Helvetica" fontSize="10.0" leading="14" alignment="CENTER"/>
+ <paraStyle name="P5" fontName="Helvetica" fontSize="12.0" leading="15" alignment="LEFT"/>
+ <paraStyle name="P6" fontName="Helvetica" fontSize="10.0" leading="13"/>
+ <paraStyle name="P7" fontName="Helvetica" fontSize="11.0" leading="14" alignment="LEFT"/>
+ <paraStyle name="P8" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" />
+ <paraStyle name="P9" fontName="Helvetica" fontSize="11.0" leading="14" alignment="LEFT"/>
+ <paraStyle name="P10" fontName="Helvetica" fontSize="12.0" leading="15"/>
+ <paraStyle name="P11" fontName="Helvetica" fontSize="10.0" leading="15" alignment="CENTER" />
<paraStyle name="Standard" fontName="Helvetica"/>
- <paraStyle name="Heading" fontName="Helvetica" fontSize="10.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+ <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
- <paraStyle name="Caption" fontName="Times-Italic" fontSize="8.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
+ <paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica"/>
<paraStyle name="Table Contents" fontName="Helvetica"/>
+ <images/>
</stylesheet>
<story>
+ <para style="P7">
+ <font color="white"> </font>
+ </para>
+ <para style="P4">
+ <font color="white"> </font>
+ </para>
<blockTable colWidths="481.0" style="Table2">
<tr>
<td>
<para style="P8">Reservation List</para>
+ <para style="P4">
+ <font color="white"> </font>
+ </para>
+ <para style="P11"><b>From "</b>[[ formatLang(data['form']['date_start'],date=True) ]]<b>" To "</b>[[ formatLang(data['form']['date_end'],date=True) ]]<b>"</b></para>
</td>
</tr>
</blockTable>
- <blockTable colWidths="72.0,81.0,85.0,94.0,68.0,81.0" style="Table1">
+ <para style="P7">
+ <font color="white"> </font>
+ </para>
+ <blockTable colWidths="72.0,90.0,89.0,89.0,140.0" style="Table1">
<tr>
<td>
- <para style="P3">Resevation No</para>
- </td>
- <td>
- <para style="P3">Guest Name</para>
- </td>
- <td>
- <para style="P3">Check-In-Date</para>
- </td>
- <td>
- <para style="P3">Check-Out-Date</para>
- </td>
- <td>
- <para style="P3">Room Type</para>
- </td>
- <td>
- <para style="P3">Room No</para>
+ <para style="P4">#No</para>
+ </td>
+ <td>
+ <para style="P4">Guest Name</para>
+ </td>
+ <td>
+ <para style="P4">Check-In-Date</para>
+ </td>
+ <td>
+ <para style="P4">Check-Out-Date</para>
+ </td>
+ <td>
+ <para style="P4">Room Detail</para>
</td>
</tr>
<tr>
<td>
<para style="P5">[[ repeatIn(get_data(data['form']['date_start'],data['form']['date_end']) ,'o') ]]</para>
- <para style="P5">[[o.reservation_no]]</para>
- </td>
- <td>
- <para style="P1"><font face="Helvetica">[[o.partner_id.name]]</font></para>
- </td>
- <td>
- <para style="P1"><font face="Helvetica">[[o.checkin]]</font></para>
- </td>
- <td>
- <para style="P1"><font face="Helvetica">[[o.checkout]]</font></para>
- </td>
- <td>
- <blockTable colWidths="72.0,72.0" style="Table3">
- <tr>
- <td>
- <para style="P9">[[repeatIn(o.reservation_line,'r')]]<font face="Helvetica">[[r.categ_id.name]]</font></para>
- </td>
- <td>
- <blockTable colWidths="66.0" style="Table4">
- <tr>
- <td>
- <para style="P2">[[repeatIn(r.reserve,'p')]]<font face="Helvetica">[[p.name]]</font></para>
- </td>
- </tr>
- </blockTable>
- </td>
- </tr>
- </blockTable>
- </td>
+ <para style="P4">[[o.reservation_no]]</para>
+ </td>
+ <td>
+ <para style="P4">[[ o.partner_id.name ]]</para>
+ </td>
+ <td>
+ <para style="P4">[[ formatLang(o.checkin, date="True") ]]</para>
+ </td>
+ <td>
+ <para style="P4">[[ formatLang(o.checkout, date="True") ]]</para>
+ </td>
+ <td>
+ <section>
+ <para style="P3B">[[repeatIn(o.reservation_line,'r')]][[r.categ_id.name]]</para>
+ <section>
+ <para style="P3">[[repeatIn(r.reserve,'p')]][[p.name]]</para>
+ </section>
+ </section>
+ </td>
</tr>
</blockTable>
</story>
=== modified file 'hotel_reservation/report/room_res.sxw'
Binary files hotel_reservation/report/room_res.sxw 2012-05-18 07:39:13 +0000 and hotel_reservation/report/room_res.sxw 2014-04-18 16:01:07 +0000 differ
=== modified file 'hotel_reservation/security/ir.model.access.csv'
--- hotel_reservation/security/ir.model.access.csv 2012-05-18 07:39:13 +0000
+++ hotel_reservation/security/ir.model.access.csv 2014-04-18 16:01:07 +0000
@@ -1,3 +1,10 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hotel_reservation","hotel.reservation","model_hotel_reservation","hotel.group_hotel_user",1,1,1,1
-"access_hotel_reservation_line","hotel_reservation.line","model_hotel_reservation_line","hotel.group_hotel_user",1,1,1,1
+"access_hotel_reservation_user","hotel.reservation.user","model_hotel_reservation","hotel.group_hotel_user",1,1,1,0
+"access_hotel_reservation_line_user","hotel_reservation.line.user","model_hotel_reservation_line","hotel.group_hotel_user",1,1,1,0
+"access_hotel_room_reservation_line_user","hotel_room_reservation.line.user","model_hotel_room_reservation_line","hotel.group_hotel_user",1,1,1,0
+"access_hotel_room_reservation_summary_user","hotel_room_reservation.summary.user","model_room_reservation_summary","hotel.group_hotel_user",1,1,1,0
+
+"access_hotel_reservation_manager","hotel.reservation.manager","model_hotel_reservation","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_reservation_line_manager","hotel_reservation.line.manager","model_hotel_reservation_line","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_room_reservation_line_manager","hotel_room_reservation.line.manager","model_hotel_room_reservation_line","hotel.group_hotel_manager",1,1,1,1
+"access_hotel_room_reservation_summary_manager","hotel_room_reservation.summary.manager","model_room_reservation_summary","hotel.group_hotel_manager",1,1,1,1
\ No newline at end of file
=== added directory 'hotel_reservation/static'
=== added directory 'hotel_reservation/static/src'
=== added directory 'hotel_reservation/static/src/css'
=== added file 'hotel_reservation/static/src/css/room_summary.css'
--- hotel_reservation/static/src/css/room_summary.css 1970-01-01 00:00:00 +0000
+++ hotel_reservation/static/src/css/room_summary.css 2014-04-18 16:01:07 +0000
@@ -0,0 +1,24 @@
+
+.table_header
+{
+ text-align: center;
+ min-width:100px;
+ vertical-align: middle;
+}
+
+.table_reserved
+{
+ background-color: red;
+ color: white;
+ text-align: center;
+ min-width:100px;
+ vertical-align: middle;
+}
+.table_free
+{
+ background-color: green;
+ color: white;
+ text-align: center;
+ min-width:100px;
+ vertical-align: middle;
+}
=== added directory 'hotel_reservation/static/src/js'
=== added file 'hotel_reservation/static/src/js/hotel_room_summary.js'
--- hotel_reservation/static/src/js/hotel_room_summary.js 1970-01-01 00:00:00 +0000
+++ hotel_reservation/static/src/js/hotel_room_summary.js 2014-04-18 16:01:07 +0000
@@ -0,0 +1,99 @@
+ openerp.hotel_reservation = function(openerp) {
+ var _t = openerp.web._t;
+ _lt = openerp.web._lt;
+ var QWeb = openerp.web.qweb;
+
+
+ openerp.hotel_reservation.RoomSummary = openerp.web.form.FormWidget.extend(openerp.web.form.ReinitializeWidgetMixin, {
+
+ display_name: _lt('Form'),
+ view_type: "form",
+
+ init: function() {
+ this._super.apply(this, arguments);
+ if(this.field_manager.model == "room.reservation.summary")
+ {
+ $(".oe_view_manager_buttons").hide()
+ $(".oe_view_manager_header").hide()
+ }
+ this.set({
+ date_to: false,
+ date_from: false,
+ summary_header: false,
+ room_summary: false,
+ });
+ this.summary_header = []
+ this.room_summary = [];
+ this.field_manager.on("field_changed:date_from", this, function() {
+ this.set({"date_from": openerp.web.str_to_datetime(this.field_manager.get_field_value("date_from"))});
+ });
+ this.field_manager.on("field_changed:date_to", this, function() {
+ this.set({"date_to": openerp.web.str_to_datetime(this.field_manager.get_field_value("date_to"))});
+ });
+
+ this.field_manager.on("field_changed:summary_header", this, function() {
+ this.set({"summary_header": this.field_manager.get_field_value("summary_header")});
+ });
+ this.field_manager.on("field_changed:room_summary", this, function() {
+ this.set({"room_summary":this.field_manager.get_field_value("room_summary")});
+ });
+
+ },
+
+ initialize_field: function() {
+ openerp.web.form.ReinitializeWidgetMixin.initialize_field.call(this);
+ var self = this;
+ self.on("change:summary_header", self, self.initialize_content);
+ self.on("change:room_summary", self, self.initialize_content);
+ },
+
+ initialize_content: function() {
+ var self = this;
+ if (self.setting)
+ return;
+
+ if (!this.summary_header || !this.room_summary)
+ return
+ // don't render anything until we have summary_header and room_summary
+
+ this.destroy_content();
+
+ if (this.get("summary_header")) {
+ this.summary_header = py.eval(this.get("summary_header"));
+ }
+ if (this.get("room_summary")) {
+ this.room_summary = py.eval(this.get("room_summary"));
+ }
+
+ this.renderElement()
+ this.view_loading()
+ },
+
+ view_loading: function(r) {
+ return this.load_form(r);
+ },
+
+ load_form: function(data) {
+ self.action_manager = new openerp.web.ActionManager(self);
+
+ this.$el.find(".table_free").bind("click", function(event){
+ self.action_manager.do_action({
+ type: 'ir.actions.act_window',
+ res_model: "quick.room.reservation",
+ views: [[false, 'form']],
+ target: 'new',
+ context: {"room_id": $(this).attr("data"), 'date': $(this).attr("date")},
+ })
+ });
+
+ },
+
+ renderElement: function() {
+ this.destroy_content();
+ this.$el.html(QWeb.render("summaryDetails", {widget: this}));
+ }
+ });
+
+ openerp.web.form.custom_widgets.add('Room_Reservation', 'openerp.hotel_reservation.RoomSummary');
+};
+
=== added directory 'hotel_reservation/static/src/xml'
=== added file 'hotel_reservation/static/src/xml/hotel_room_summary.xml'
--- hotel_reservation/static/src/xml/hotel_room_summary.xml 1970-01-01 00:00:00 +0000
+++ hotel_reservation/static/src/xml/hotel_room_summary.xml 2014-04-18 16:01:07 +0000
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<templates id="hotel_template" xml:space="preserve">
+
+ <t t-name="summaryDetails">
+ <div style="overflow:auto;">
+ <table border="1">
+ <t t-foreach="widget.summary_header" t-as="header_detail">
+ <tr>
+ <t t-foreach="header_detail.header" t-as="date">
+ <th class="table_header" style="text-align:center;"><t t-esc="date"/></th>
+ </t>
+ </tr>
+ </t>
+ <t t-foreach="widget.room_summary" t-as="detail">
+ <tr>
+ <td style="text-align:center;"><t t-esc="detail.name"/></td>
+ <t t-foreach="detail.value" t-as="status">
+ <t t-if="status.state == 'Free'">
+ <td class="table_free" t-att-data = "status.room_id" t-att-date = "status.date" style="text-align:center;"><t t-esc="status.state"/></td>
+ </t>
+ <t t-if="status.state != 'Free'">
+ <td class="table_reserved" style="text-align:center;" ><t t-esc="status.state"/></td>
+ </t>
+ </t>
+ </tr>
+ </t>
+ </table>
+ </div>
+ </t>
+</templates>
\ No newline at end of file
=== modified file 'hotel_reservation/wizard/__init__.py'
--- hotel_reservation/wizard/__init__.py 2012-05-18 07:39:13 +0000
+++ hotel_reservation/wizard/__init__.py 2014-04-18 16:01:07 +0000
@@ -1,23 +1,24 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import hotel_reservation_wizard
+from . import hotel_reservation_wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_reservation/wizard/hotel_reservation_wizard.py'
--- hotel_reservation/wizard/hotel_reservation_wizard.py 2012-05-23 07:17:58 +0000
+++ hotel_reservation/wizard/hotel_reservation_wizard.py 2014-04-18 16:01:07 +0000
@@ -1,112 +1,99 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-from osv import fields
-from osv import osv
-import time
-from mx import DateTime
-import datetime
-import pooler
-from tools import config
-import wizard
-import netsvc
-
-class hotel_reservation_wizard(osv.osv_memory):
-
+
+from openerp.osv import osv, fields
+
+class hotel_reservation_wizard(osv.TransientModel):
_name = 'hotel.reservation.wizard'
-
_columns = {
- 'date_start' :fields.datetime('Start Date',required=True),
- 'date_end': fields.datetime('End Date',required=True),
+ 'date_start': fields.datetime('Start Date', required=True),
+ 'date_end': fields.datetime('End Date', required=True),
}
-
- def report_reservation_detail(self,cr,uid,ids,context=None):
- datas = {
- 'ids': ids,
- 'model': 'hotel.reservation',
- 'form': self.read(cr, uid, ids)[0]
+
+ def report_reservation_detail(self, cr, uid, ids, context=None):
+ values = {
+ 'ids': ids,
+ 'model': 'hotel.reservation',
+ 'form': self.read(cr, uid, ids, context=context)[0]
}
return {
'type': 'ir.actions.report.xml',
'report_name': 'reservation.detail',
- 'datas': datas,
- }
-
- def report_checkin_detail(self,cr,uid,ids,context=None):
- datas = {
- 'ids': ids,
- 'model': 'hotel.reservation',
- 'form': self.read(cr, uid, ids)[0]
+ 'datas': values,
+ }
+
+ def report_checkin_detail(self, cr, uid, ids, context=None):
+ values = {
+ 'ids': ids,
+ 'model': 'hotel.reservation',
+ 'form': self.read(cr, uid, ids, context=context)[0]
}
return {
'type': 'ir.actions.report.xml',
'report_name': 'checkin.detail',
- 'datas': datas,
+ 'datas': values,
}
-
- def report_checkout_detail(self,cr,uid,ids,context=None):
- datas = {
- 'ids': ids,
- 'model': 'hotel.reservation',
- 'form': self.read(cr, uid, ids)[0]
+
+ def report_checkout_detail(self, cr, uid, ids, context=None):
+ values = {
+ 'ids': ids,
+ 'model': 'hotel.reservation',
+ 'form': self.read(cr, uid, ids, context=context)[0]
}
return {
'type': 'ir.actions.report.xml',
'report_name': 'checkout.detail',
- 'datas': datas,
+ 'datas': values,
}
-
- def report_maxroom_detail(self,cr,uid,ids,context=None):
- datas = {
- 'ids': ids,
- 'model': 'hotel.reservation',
- 'form': self.read(cr, uid, ids)[0]
+
+ def report_maxroom_detail(self, cr, uid, ids, context=None):
+ values = {
+ 'ids': ids,
+ 'model': 'hotel.reservation',
+ 'form': self.read(cr, uid, ids, context=context)[0]
}
return {
'type': 'ir.actions.report.xml',
'report_name': 'maxroom.detail',
- 'datas': datas,
+ 'datas': values,
}
-
-hotel_reservation_wizard()
-class make_folio_wizard(osv.osv_memory):
-
+class make_folio_wizard(osv.TransientModel):
_name = 'wizard.make.folio'
-
_columns = {
- 'grouped':fields.boolean('Group the Folios'),
+ 'grouped': fields.boolean('Group the Folios'),
}
-
- _defaults = {
+ _defaults = {
'grouped': False,
}
-
- def makeFolios(self, cr, uid, data, context):
+
+ def makeFolios(self, cr, uid, data, context=None):
order_obj = self.pool.get('hotel.reservation')
newinv = []
- for o in order_obj.browse(cr, uid, context['active_ids'], context):
- for i in o.folio_id:
- newinv.append(i.id)
+ for order in order_obj.browse(cr, uid, context['active_ids'], context=context):
+ for folio in order.folio_id:
+ newinv.append(folio.id)
return {
- 'domain': "[('id','in', ["+','.join(map(str,newinv))+"])]",
+ 'domain': "[('id','in', ["+','.join(map(str, newinv))+"])]",
'name': 'Folios',
'view_type': 'form',
'view_mode': 'tree,form',
@@ -115,7 +102,4 @@
'type': 'ir.actions.act_window'
}
-
-make_folio_wizard()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_reservation/wizard/hotel_reservation_wizard.xml'
--- hotel_reservation/wizard/hotel_reservation_wizard.xml 2012-05-23 07:17:58 +0000
+++ hotel_reservation/wizard/hotel_reservation_wizard.xml 2014-04-18 16:01:07 +0000
@@ -1,30 +1,27 @@
<?xml version="1.0" ?>
<openerp>
- <data>
+ <data>
<record model="ir.ui.view" id="hotel_reservation_wizard_form_view">
<field name="name">hotel.reservation.wizard.form</field>
<field name="model">hotel.reservation.wizard</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Reservation List">
- <group col='8'>
- <field name="date_start" colspan= '4'/>
- <field name="date_end" colspan= '4'/>
- </group>
- <newline/>
- <separator colspan='4'/>
- <group col='8'>
+ <form string="Reservation List" version='7.0'>
+ <group col="4">
+ <field name="date_start"/>
+ <field name="date_end"/>
+ </group>
+ <footer>
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
- <button name='report_reservation_detail' type='object' string='Reservation List' icon="gtk-justify-fill"/>
- <button name='report_checkin_detail' string="CheckIn List" type="object" icon="gtk-jump-to"/>
- <button name='report_checkout_detail' string="CheckOut List" type="object" icon="gtk-redo"/>
- <button name='report_maxroom_detail' string="Room Used Maximum" type="object" icon="terp-stock_symbol-selection"/>
- </group>
+ <button name='report_checkin_detail' string="CheckIn List" type="object" icon="gtk-jump-to"/>
+ <button name='report_checkout_detail' string="CheckOut List" type="object" icon="gtk-redo"/>
+ <button name='report_reservation_detail' type='object' string='Reservation List' icon="gtk-justify-fill"/>
+ <button name='report_maxroom_detail' string="Room Used Maximum" type="object" icon="terp-stock_symbol-selection"/>
+ </footer>
</form>
</field>
</record>
-
+
<record id="action_hotel_reservation_wizard"
model="ir.actions.act_window">
<field name="name">Reservation List</field>
@@ -34,37 +31,37 @@
<field name="target">new</field>
</record>
-
<record model="ir.ui.view" id="make_folio_wizard_form_view">
<field name="name">make.folio.wizard.form</field>
<field name="model">wizard.make.folio</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Create Folio">
+ <form string="Create Folio" version='7.0'>
<separator colspan="4" string="Do you really want to create the Folio ?" />
<field name="grouped" />
<newline/>
- <button special="cancel" string="Cancel" icon="gtk-cancel"/>
- <button name='makeFolios' string="Create Folio" type="object" icon="gtk-go-forward"/>
-
+ <footer>
+ <button name="makeFolios" string="Create Folio" type="object" class="oe_highlight"/>
+ or
+ <button string="Cancel" class="oe_link" special="cancel"/>
+ </footer>
</form>
</field>
</record>
-
-
+
<act_window name="Make Folios"
key2="client_action_multi"
- res_model="wizard.make.folio"
- src_model="hotel.reservation"
- id="act_make_folio"
- view_mode="form" target="new"
- view_type="form"/>
-
- <menuitem
- name="Hotel Reservation Report"
- action="action_hotel_reservation_wizard"
- parent="hotel.hotel_report_menu"
- id="wizard_res_menu"
- sequence="28"/>
- </data>
-</openerp>
+ res_model="wizard.make.folio"
+ src_model="hotel.reservation"
+ id="act_make_folio"
+ view_mode="form" target="new"
+ view_type="form"/>
+
+ <menuitem
+ name="Hotel Reservation Report"
+ action="action_hotel_reservation_wizard"
+ parent="hotel.hotel_report_menu"
+ id="wizard_res_menu"
+ sequence="28"/>
+
+ </data>
+</openerp>
\ No newline at end of file
=== added directory 'hotel_restaurant/Doc'
=== added file 'hotel_restaurant/Doc/ChangeLog.txt'
--- hotel_restaurant/Doc/ChangeLog.txt 1970-01-01 00:00:00 +0000
+++ hotel_restaurant/Doc/ChangeLog.txt 2014-04-18 16:01:07 +0000
@@ -0,0 +1,14 @@
+============================================================================================================================
+ Version Change Log (hotel_restaurant)
+============================================================================================================================
+0.05 on 2014-04-04 by Dhwani
+ * Standardized the module as per v7 standards.
+
+0.04 on 2014-01-11 by Krunal Soni
+ * Checked code quality and improved report format.
+
+0.03 on 2014-01-07 by Krunal Soni
+ * Added Accurate licensing terms and Copyright(C) on top inside license info in each py file.
+
+0.02 on 2013-11-13 by Sudhir Arya
+ * Standardized the module as per v7 standards.
\ No newline at end of file
=== modified file 'hotel_restaurant/__init__.py'
--- hotel_restaurant/__init__.py 2012-05-18 07:39:13 +0000
+++ hotel_restaurant/__init__.py 2014-04-18 16:01:07 +0000
@@ -1,27 +1,27 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import hotel_restaurant
-import report
-import wizard
-
+from . import hotel_restaurant
+from . import report
+from . import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_restaurant/__openerp__.py'
--- hotel_restaurant/__openerp__.py 2012-05-23 07:17:58 +0000
+++ hotel_restaurant/__openerp__.py 2014-04-18 16:01:07 +0000
@@ -1,28 +1,29 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
{
"name" : "Hotel Restaurant Management",
- "version" : "1.0",
- "author" : "Tiny",
+ "version" : "0.05",
+ "author": ["Serpent Consulting Services Pvt. Ltd.", "OpenERP SA" ],
"category" : "Generic Modules/Hotel Restaurant",
"description": """
Module for Hotel/Resort/Restaurant management. You can manage:
@@ -34,21 +35,21 @@
Different reports are also provided, mainly for Restaurant.
""",
- "depends" : ["base","hotel"],
- "init_xml" : [],
- "demo_xml" : ["hotel_restaurant_data.xml",
+ "website": "http://www.serpentcs.com",
+ "depends" : ["hotel"],
+ "demo" : [
+ "hotel_restaurant_data.xml",
],
- "update_xml" : [
- "hotel_restaurant_view.xml",
- "report/hotel_restaurant_report.xml",
- "hotel_restaurant_workflow.xml",
- "wizard/hotel_restaurant_wizard.xml",
- "hotel_restaurant_sequence.xml",
- "security/ir.model.access.csv",
+ "data" : [
+ "security/ir.model.access.csv",
+ "report/hotel_restaurant_report.xml",
+ "wizard/hotel_restaurant_wizard.xml",
+ "hotel_restaurant_workflow.xml",
+ "hotel_restaurant_sequence.xml",
+ "hotel_restaurant_view.xml",
],
"active": False,
"installable": True
}
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_restaurant/hotel_restaurant.py'
--- hotel_restaurant/hotel_restaurant.py 2012-05-25 11:25:10 +0000
+++ hotel_restaurant/hotel_restaurant.py 2014-04-18 16:01:07 +0000
@@ -1,108 +1,90 @@
-# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-from osv import fields
-from osv import osv
-import time
-from mx import DateTime
-import netsvc
-import datetime
-import pooler
-from tools import config
-
-
-class product_category(osv.osv):
+from openerp.osv import fields, osv
+from openerp import netsvc
+from openerp.tools.translate import _
+
+class product_category(osv.Model):
_inherit = "product.category"
_columns = {
- 'ismenutype':fields.boolean('Is Menu Type'),
+ 'ismenutype': fields.boolean('Is Menu Type'),
}
-product_category()
-class product_product(osv.osv):
+
+class product_product(osv.Model):
_inherit = "product.product"
_columns = {
- 'ismenucard':fields.boolean('Is Room'),
- }
-product_product()
+ 'ismenucard': fields.boolean('Is Menucard'),
+ }
-class hotel_menucard_type(osv.osv):
+class hotel_menucard_type(osv.Model):
_name = 'hotel.menucard.type'
- _description = 'amenities Type'
+ _description = 'Amenities Type'
_inherits = {'product.category':'menu_id'}
_columns = {
- 'menu_id':fields.many2one('product.category', 'category', required=True, ondelete='cascade'),
- }
+ 'menu_id': fields.many2one('product.category', 'Category', required=True, ondelete='cascade'),
+ }
_defaults = {
- 'ismenutype': lambda * a: 1,
-
+ 'ismenutype': 1,
}
-hotel_menucard_type()
-
-class hotel_menucard(osv.osv):
-
+
+class hotel_menucard(osv.Model):
_name = 'hotel.menucard'
_inherits = {'product.product':'product_id'}
-
_description = 'Hotel Menucard'
_columns = {
-
- 'product_id': fields.many2one('product.product', 'Product_id'),
- }
+ 'product_id': fields.many2one('product.product', 'Product', required=True, ondelete='cascade'),
+ 'image': fields.binary("Image", help="This field holds the image used as image for the product, limited to 1024x1024px."),
+ }
_defaults = {
- 'ismenucard': lambda * a: 1,
- }
-hotel_menucard()
-
-
-class hotel_restaurant_tables(osv.osv):
-
+ 'ismenucard': 1,
+ }
+
+class hotel_restaurant_tables(osv.Model):
_name = "hotel.restaurant.tables"
_description = "Includes Hotel Restaurant Table"
_columns = {
- 'name':fields.char('Table number', size=64, required=True),
- 'capacity':fields.integer('Capacity'),
-
- }
-hotel_restaurant_tables()
-
-class hotel_restaurant_reservation(osv.osv):
+ 'name': fields.char('Table Number', size=64, required=True),
+ 'capacity': fields.integer('Capacity'),
+ }
+
+class hotel_restaurant_reservation(osv.Model):
def create_order(self, cr, uid, ids, context=None):
- k = []
- for i in self.browse(cr, uid, ids):
- table_ids = [x.id for x in i.tableno]
- kot_data = self.pool.get('hotel.reservation.order').create(cr, uid, {
- 'reservationno':i.reservation_id,
- 'date1':i.start_date,
- 'table_no':[(6, 0, table_ids)],
- })
-
-
- return True
+ proxy = self.pool.get('hotel.reservation.order')
+ for record in self.browse(cr, uid, ids):
+ table_ids = [tableno.id for tableno in record.tableno]
+ values = {
+ 'reservationno': record.reservation_id,
+ 'date1': ecord.start_date,
+ 'table_no': [(6, 0, table_ids)],
+ }
+ proxy.create(cr, uid, values, context=context)
+ return True
def onchange_partner_id(self, cr, uid, ids, part):
- if not part:
- return {'value':{'partner_address_id': False}}
- addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['default'])
- pricelist = self.pool.get('res.partner').browse(cr, uid, part).property_product_pricelist_purchase.id
- return {'value':{'partner_address_id': addr['default']}}
+ if not part:
+ return {'value': {'partner_address_id': False}}
+ addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['default'])
+ return {'value': {'partner_address_id': addr['default']}}
def action_set_to_draft(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state': 'draft'})
@@ -112,9 +94,7 @@
return True
def table_reserved(self, cr, uid, ids, *args):
-
for reservation in self.browse(cr, uid, ids):
-
cr.execute("select count(*) from hotel_restaurant_reservation as hrr " \
"inner join reservation_table as rt on rt.reservation_table_id = hrr.id " \
"where (start_date,end_date)overlaps( timestamp %s , timestamp %s ) " \
@@ -123,42 +103,32 @@
"inner join reservation_table as rt on rt.reservation_table_id = hrr.id " \
"where hrr.id= %s) " \
, (reservation.start_date, reservation.end_date, reservation.id, reservation.id))
-
res = cr.fetchone()
-
roomcount = res and res[0] or 0.0
if roomcount:
- raise osv.except_osv('Warning', 'You tried to confirm reservation with table those already reserved in this reservation period')
+ raise osv.except_osv(_('Warning'), _('You tried to confirm reservation with table those already reserved in this reservation period'))
else:
self.write(cr, uid, ids, {'state':'confirm'})
return True
-
-
def table_cancel(self, cr, uid, ids, *args):
-
- self.write(cr, uid, ids, {
- 'state':'cancel'
- })
+ self.write(cr, uid, ids, {'state':'cancel'})
return True
def table_done(self, cr, uid, ids, *args):
-
- self.write(cr, uid, ids, {
- 'state':'done'
- })
+ self.write(cr, uid, ids, {'state':'done'})
return True
_name = "hotel.restaurant.reservation"
_description = "Includes Hotel Restaurant Reservation"
_columns = {
- 'reservation_id':fields.char('Reservation No', size=64, required=True),
- 'room_no':fields.many2one('hotel.room', 'Room No', size=64),
- 'start_date':fields.datetime('Start Date', required=True),
- 'end_date':fields.datetime('End Date', required=True),
- 'cname':fields.many2one('res.partner', 'Customer Name', size=64, required=True),
- 'partner_address_id':fields.many2one('res.partner.address', 'Address'),
- 'tableno':fields.many2many('hotel.restaurant.tables', 'reservation_table', 'reservation_table_id', 'name', 'Table number'),
+ 'reservation_id': fields.char('Reservation No', size=64, required=True),
+ 'room_no': fields.many2one('hotel.room', 'Room No', size=64),
+ 'start_date': fields.datetime('Start Time', required=True),
+ 'end_date': fields.datetime('End Time', required=True),
+ 'cname': fields.many2one('res.partner', 'Customer Name', size=64, required=True),
+ 'partner_address_id': fields.many2one('res.partner', 'Address'),
+ 'tableno': fields.many2many('hotel.restaurant.tables', 'reservation_table', 'reservation_table_id', 'name', 'Table Number', help="Table reservation detail. "),
'state' : fields.selection([('draft', 'Draft'), ('confirm', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')], 'state', select=True, required=True, readonly=True),
}
_defaults = {
@@ -166,93 +136,75 @@
'reservation_id':lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'hotel.restaurant.reservation'),
}
_sql_constraints = [
- ('check_dates', 'CHECK (start_date<=end_date)', 'Start Date Should be less than the End Date!'),
- ]
-
-
-hotel_restaurant_reservation()
-
-class hotel_restaurant_kitchen_order_tickets(osv.osv):
+ ('check_dates', 'CHECK (start_date<=end_date)', 'Start Date Should be less than the End Date!'),
+ ]
+
+class hotel_restaurant_kitchen_order_tickets(osv.Model):
_name = "hotel.restaurant.kitchen.order.tickets"
_description = "Includes Hotel Restaurant Order"
_columns = {
- 'orderno':fields.char('Order Number', size=64, readonly=True),
- 'resno':fields.char('Reservation Number', size=64),
- 'kot_date':fields.datetime('Date'),
- 'room_no':fields.char('Room No', size=64, readonly=True),
- 'w_name':fields.char('Waiter Name', size=64, readonly=True),
- 'tableno':fields.many2many('hotel.restaurant.tables', 'temp_table3', 'table_no', 'name', 'Table number', size=64),
- 'kot_list':fields.one2many('hotel.restaurant.order.list', 'kot_order_list', 'Order List'),
-
- }
-
-hotel_restaurant_kitchen_order_tickets()
-
-class hotel_restaurant_order(osv.osv):
-
- def _sub_total(self, cr, uid, ids, field_name, arg, context):
- res = {}
- for sale in self.browse(cr, uid, ids):
- res[sale.id] = 0.00
- for line in sale.order_list:
- res[sale.id] += line.price_subtotal
- return res
-
-
- def _total(self, cr, uid, ids, field_name, arg, context):
- res = {}
- for line in self.browse(cr, uid, ids):
- res[line.id] = line.amount_subtotal + (line.amount_subtotal * line.tax) / 100
- return res
+ 'orderno': fields.char('Order Number', size=64, readonly=True),
+ 'resno': fields.char('Reservation Number', size=64),
+ 'kot_date': fields.datetime('Date'),
+ 'room_no': fields.char('Room No', size=64, readonly=True),
+ 'w_name': fields.char('Waiter Name', size=64, readonly=True),
+ 'tableno': fields.many2many('hotel.restaurant.tables', 'temp_table3', 'table_no', 'name', 'Table Number', size=64, help="Table reservation detail."),
+ 'kot_list': fields.one2many('hotel.restaurant.order.list', 'kot_order_list', 'Order List', help="Kitchen order list"),
+ }
+
+class hotel_restaurant_order(osv.Model):
+
+ def _sub_total(self, cr, uid, ids, field_name, arg, context=None):
+ res = {}
+ for sale in self.browse(cr, uid, ids, context=context):
+ res[sale.id] = sum(line.price_subtotal for line in sale.order_list)
+ return res
+
+ def _total(self, cr, uid, ids, field_name, arg, context=None):
+ res = {}
+ for line in self.browse(cr, uid, ids, context=context):
+ res[line.id] = line.amount_subtotal + (line.amount_subtotal * line.tax) / 100
+ return res
def generate_kot(self, cr, uid, ids, part):
-
+ order_tickets_obj = self.pool.get('hotel.restaurant.kitchen.order.tickets')
+ restaurant_order_list_obj = self.pool.get('hotel.restaurant.order.list')
for order in self.browse(cr, uid, ids):
table_ids = [x.id for x in order.table_no]
- kot_data = self.pool.get('hotel.restaurant.kitchen.order.tickets').create(cr, uid, {
- 'orderno':order.order_no,
- 'kot_date':order.o_date,
- 'room_no':order.room_no.name,
- 'w_name':order.waiter_name.name,
- 'tableno':[(6, 0, table_ids)],
- })
-
+ kot_data = order_tickets_obj.create(cr, uid, {
+ 'orderno': order.order_no,
+ 'kot_date': order.o_date,
+ 'room_no': order.room_no.name,
+ 'w_name': order.waiter_name.name,
+ 'tableno': [(6, 0, table_ids)],
+ })
for order_line in order.order_list:
-
o_line = {
- 'kot_order_list':kot_data,
- 'name':order_line.name.id,
- 'item_qty':order_line.item_qty,
- }
- self.pool.get('hotel.restaurant.order.list').create(cr, uid, o_line)
-
+ 'kot_order_list': kot_data,
+ 'name': order_line.name.id,
+ 'item_qty': order_line.item_qty,
+ }
+ restaurant_order_list_obj.create(cr, uid, o_line)
return True
-
_name = "hotel.restaurant.order"
_description = "Includes Hotel Restaurant Order"
_columns = {
- 'order_no':fields.char('Order Number', size=64, required=True),
- 'o_date':fields.datetime('Date', required=True),
- 'room_no':fields.many2one('hotel.room', 'Room No', size=64),
- 'waiter_name':fields.many2one('res.partner', 'Waiter Name', size=64, required=True),
- 'table_no':fields.many2many('hotel.restaurant.tables', 'temp_table2', 'table_no', 'name', 'Table number', size=64),
- 'order_list':fields.one2many('hotel.restaurant.order.list', 'o_list', 'Order List'),
- 'tax': fields.float('Tax (%) ', size=64),
+ 'order_no': fields.char('Order Number', size=64, required=True),
+ 'o_date': fields.datetime('Date', required=True),
+ 'room_no': fields.many2one('hotel.room', 'Room No'),
+ 'waiter_name': fields.many2one('res.partner', 'Waiter Name'),
+ 'table_no': fields.many2many('hotel.restaurant.tables', 'temp_table2', 'table_no', 'name', 'Table Number'),
+ 'order_list': fields.one2many('hotel.restaurant.order.list', 'o_list', 'Order List'),
+ 'tax': fields.float('Tax (%) '),
'amount_subtotal': fields.function(_sub_total, method=True, string='Subtotal'),
'amount_total':fields.function(_total, method=True, string='Total'),
-
-
-
- }
+ }
_defaults = {
'order_no': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'hotel.restaurant.order'),
-
}
-hotel_restaurant_order()
-
-class hotel_reservation_order(osv.osv):
+class hotel_reservation_order(osv.Model):
def _sub_total(self, cr, uid, ids, field_name, arg, context):
res = {}
@@ -262,86 +214,74 @@
res[sale.id] += line.price_subtotal
return res
-
def _total(self, cr, uid, ids, field_name, arg, context):
- res = {}
- for line in self.browse(cr, uid, ids):
- res[line.id] = line.amount_subtotal + (line.amount_subtotal * line.tax) / 100
- return res
+ res = {}
+ for line in self.browse(cr, uid, ids):
+ res[line.id] = line.amount_subtotal + (line.amount_subtotal * line.tax) / 100.0
+ return res
def reservation_generate_kot(self, cr, uid, ids, part):
-
+ order_tickets_obj = self.pool.get('hotel.restaurant.kitchen.order.tickets')
+ rest_order_list_obj = self.pool.get('hotel.restaurant.order.list')
for order in self.browse(cr, uid, ids):
table_ids = [x.id for x in order.table_no]
- kot_data = self.pool.get('hotel.restaurant.kitchen.order.tickets').create(cr, uid, {
- 'orderno':order.order_number,
- 'resno':order.reservationno,
- 'kot_date':order.date1,
- 'w_name':order.waitername.name,
- 'tableno':[(6, 0, table_ids)],
- })
-
+ kot_data = order_tickets_obj.create(cr, uid, {
+ 'orderno': order.order_number,
+ 'resno': order.reservationno,
+ 'kot_date': order.date1,
+ 'w_name': order.waitername.name,
+ 'tableno': [(6, 0, table_ids)],
+ })
for order_line in order.order_list:
-
o_line = {
- 'kot_order_list':kot_data,
- 'name':order_line.name.id,
- 'item_qty':order_line.item_qty,
- }
- self.pool.get('hotel.restaurant.order.list').create(cr, uid, o_line)
-
- return True
+ 'kot_order_list': kot_data,
+ 'name': order_line.name.id,
+ 'item_qty': order_line.item_qty,
+ }
+ rest_order_list_obj.create(cr, uid, o_line)
+ return True
_name = "hotel.reservation.order"
_description = "Reservation Order"
_columns = {
- 'order_number':fields.char('Order No', size=64),
- 'reservationno':fields.char('Reservation No', size=64),
- 'date1':fields.datetime('Date', required=True),
- 'waitername':fields.many2one('res.partner', 'Waiter Name', size=64),
- 'table_no':fields.many2many('hotel.restaurant.tables', 'temp_table4', 'table_no', 'name', 'Table number', size=64),
- 'order_list':fields.one2many('hotel.restaurant.order.list', 'o_l', 'Order List'),
+ 'order_number': fields.char('Order No', size=64),
+ 'reservationno': fields.char('Reservation No', size=64),
+ 'date1': fields.datetime('Date', required=True),
+ 'waitername': fields.many2one('res.partner', 'Waiter Name', size=64),
+ 'table_no': fields.many2many('hotel.restaurant.tables', 'temp_table4', 'table_no', 'name', 'Table Number', size=64),
+ 'order_list': fields.one2many('hotel.restaurant.order.list', 'o_l', 'Order List'),
'tax': fields.float('Tax (%) ', size=64),
'amount_subtotal': fields.function(_sub_total, method=True, string='Subtotal'),
- 'amount_total':fields.function(_total, method=True, string='Total'),
-
-
- }
-
+ 'amount_total': fields.function(_total, method=True, string='Total'),
+ }
_defaults = {
- 'order_number':lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'hotel.reservation.order'),
- }
-
-hotel_reservation_order()
-
-class hotel_restaurant_order_list(osv.osv):
+ 'order_number': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'hotel.reservation.order'),
+ }
+
+class hotel_restaurant_order_list(osv.Model):
def _sub_total(self, cr, uid, ids, field_name, arg, context):
res = {}
for line in self.browse(cr, uid, ids):
- res[line.id] = line.item_rate * int(line.item_qty)
+ res[line.id] = line.item_rate * int(line.item_qty)
return res
-
def on_change_item_name(self, cr, uid, ids, name, context=None):
- if not name:
- return {'value':{}}
- temp = self.pool.get('hotel.menucard').browse(cr, uid, name, context)
- return {'value':{'item_rate':temp.list_price}}
-
+ if not name:
+ return {'value': {}}
+ temp = self.pool.get('hotel.menucard').browse(cr, uid, name, context)
+ return {'value': {'item_rate': temp.list_price}}
_name = "hotel.restaurant.order.list"
_description = "Includes Hotel Restaurant Order"
_columns = {
- 'o_list':fields.many2one('hotel.restaurant.order'),
- 'o_l':fields.many2one('hotel.reservation.order'),
- 'kot_order_list':fields.many2one('hotel.restaurant.kitchen.order.tickets'),
- 'name':fields.many2one('hotel.menucard', 'Item Name', required=True),
- 'item_qty':fields.char('Qty', size=64, required=True),
- 'item_rate':fields.float('Rate', size=64),
+ 'o_list': fields.many2one('hotel.restaurant.order', 'Restaurant Order'),
+ 'o_l': fields.many2one('hotel.reservation.order', 'Reservation Order'),
+ 'kot_order_list': fields.many2one('hotel.restaurant.kitchen.order.tickets', 'Kitchen Order Tickets'),
+ 'name': fields.many2one('hotel.menucard', 'Item Name', required=True),
+ 'item_qty': fields.char('Qty', size=64, required=True),
+ 'item_rate': fields.float('Rate', size=64),
'price_subtotal': fields.function(_sub_total, method=True, string='Subtotal'),
- }
-hotel_restaurant_order_list()
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+ }
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_restaurant/hotel_restaurant_data.xml'
--- hotel_restaurant/hotel_restaurant_data.xml 2012-05-18 07:39:13 +0000
+++ hotel_restaurant/hotel_restaurant_data.xml 2014-04-18 16:01:07 +0000
@@ -49,7 +49,7 @@
<field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','Punjabi')]" ref="hotel_menucard_type_1"/>
<field name="list_price">50.00</field>
</record>
- <record id="hotel_fooditem_1" model="hotel.menucard">
+ <record id="hotel_fooditem_1" model="hotel.menucard">
<field name="name">Tanduri Roti</field>
<field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','Punjabi')]" ref="hotel_menucard_type_1"/>
<field name="list_price">10</field>
@@ -59,38 +59,124 @@
<field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','South Indian')]" ref="hotel_menucard_type_2"/>
<field name="list_price">30.00</field>
</record>
-
-
-
+ <record id="hotel_fooditem_4" model="hotel.menucard">
+ <field name="name">Paneer Butter Masala</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','Punjabi')]" ref="hotel_menucard_type_1"/>
+ <field name="list_price">60.00</field>
+ </record>
+ <record id="hotel_fooditem_5" model="hotel.menucard">
+ <field name="name">Cheese Masala</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','Punjabi')]" ref="hotel_menucard_type_1"/>
+ <field name="list_price">110.00</field>
+ </record>
+ <record id="hotel_fooditem_6" model="hotel.menucard">
+ <field name="name">Paneer Bhurji</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','Punjabi')]" ref="hotel_menucard_type_1"/>
+ <field name="list_price">80.00</field>
+ </record>
+ <record id="hotel_fooditem_7" model="hotel.menucard">
+ <field name="name">Mutter Paneer</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','Punjabi')]" ref="hotel_menucard_type_1"/>
+ <field name="list_price">70.00</field>
+ </record>
+ <record id="hotel_fooditem_8" model="hotel.menucard">
+ <field name="name">Malai Kofta</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','Punjabi')]" ref="hotel_menucard_type_1"/>
+ <field name="list_price">85.00</field>
+ </record>
+ <record id="hotel_fooditem_22" model="hotel.menucard">
+ <field name="name">Masala kulcha</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','Punjabi')]" ref="hotel_menucard_type_1"/>
+ <field name="list_price">30</field>
+ </record>
+ <record id="hotel_fooditem_10" model="hotel.menucard">
+ <field name="name">Paneer Makhani</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','Punjabi')]" ref="hotel_menucard_type_1"/>
+ <field name="list_price">90.00</field>
+ </record>
+
+ <!-- Gujarati -->
+
+
+ <record id="hotel_fooditem_21" model="hotel.menucard">
+ <field name="name">Chole-Bhature</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','Gujarati')]" ref="hotel_menucard_type_3"/>
+ <field name="list_price">60.00</field>
+ </record>
+ <record id="hotel_fooditem_12" model="hotel.menucard">
+ <field name="name">Bahji Pav</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','Gujarati')]" ref="hotel_menucard_type_3"/>
+ <field name="list_price">60</field>
+ </record>
+ <record id="hotel_fooditem_13" model="hotel.menucard">
+ <field name="name">Khandvi</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','Gujarati')]" ref="hotel_menucard_type_3"/>
+ <field name="list_price">40</field>
+ </record>
+ <record id="hotel_fooditem_14" model="hotel.menucard">
+ <field name="name">Halva</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','Gujarati')]" ref="hotel_menucard_type_3"/>
+ <field name="list_price">80</field>
+ </record>
+
+ <!-- South Indian -->
+
+
+ <record id="hotel_fooditem_15" model="hotel.menucard">
+ <field name="name">Idli-Sambar</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','South Indian')]" ref="hotel_menucard_type_2"/>
+ <field name="list_price">40.00</field>
+ </record>
+ <record id="hotel_fooditem_16" model="hotel.menucard">
+ <field name="name">Upma</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','South Indian')]" ref="hotel_menucard_type_2"/>
+ <field name="list_price">30.00</field>
+ </record>
+ <record id="hotel_fooditem_17" model="hotel.menucard">
+ <field name="name">Vada-Sambar</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','South Indian')]" ref="hotel_menucard_type_2"/>
+ <field name="list_price">50.00</field>
+ </record>
+ <record id="hotel_fooditem_18" model="hotel.menucard">
+ <field name="name">Uttapam</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','South Indian')]" ref="hotel_menucard_type_2"/>
+ <field name="list_price">70.00</field>
+ </record>
+ <record id="hotel_fooditem_19" model="hotel.menucard">
+ <field name="name">Appam </field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','South Indian')]" ref="hotel_menucard_type_2"/>
+ <field name="list_price">60.00</field>
+ </record>
+ <record id="hotel_fooditem_20" model="hotel.menucard">
+ <field name="name">Pongal</field>
+ <field name="categ_id" model="product.category" search="[('ismenutype','=',True),('name','=','South Indian')]" ref="hotel_menucard_type_2"/>
+ <field name="list_price">50.00</field>
+ </record>
<record id="hotel_restaurant_reservation_0" model="hotel.restaurant.reservation">
<field eval="[(6,0,[ref('hotel_restaurant.hotel_restaurant_tables_table1'),ref('hotel_restaurant.hotel_restaurant_tables_table0')])]" name="tableno"/>
<field name="room_no" ref="hotel.hotel_room_3"/>
- <field eval=""2008-04-26 20:09:00"" name="end_date"/>
+ <field eval=""2013-04-26 20:09:00"" name="end_date"/>
<field name="partner_address_id" ref="base.res_partner_address_9"/>
<field eval=""draft"" name="state"/>
<field name="cname" ref="base.res_partner_2"/>
<field eval=""R0/00001"" name="reservation_id"/>
- <field eval=""2008-04-25 15:09:00"" name="start_date"/>
+ <field eval=""2013-04-25 15:09:00"" name="start_date"/>
</record>
-
-
<record id="hotel_restaurant_reservation_1" model="hotel.restaurant.reservation">
<field eval="[(6,0,[ref('hotel_restaurant.hotel_restaurant_tables_table2'),ref('hotel_restaurant.hotel_restaurant_tables_table3')])]" name="tableno"/>
<field name="room_no" ref="hotel.hotel_room_0"/>
- <field eval=""2008-04-25 15:09:00"" name="end_date"/>
+ <field eval=""2013-04-25 15:09:00"" name="end_date"/>
<field name="partner_address_id" ref="base.res_partner_address_13"/>
<field eval=""draft"" name="state"/>
<field name="cname" ref="base.res_partner_14"/>
<field eval=""R0/00004"" name="reservation_id"/>
- <field eval=""2008-04-23 11:09:00"" name="start_date"/>
+ <field eval=""2013-04-23 11:09:00"" name="start_date"/>
</record>
-
-
<record id="hotel_reservation_order_0" model="hotel.reservation.order">
<field eval="[(6,0,[ref('hotel_restaurant.hotel_restaurant_tables_table2'),ref('hotel_restaurant.hotel_restaurant_tables_table3')])]" name="table_no"/>
- <field eval=""2008-04-25 15:09:00"" name="date1"/>
+ <field eval=""2013-04-25 15:09:00"" name="date1"/>
<field eval=""ORR/00001"" name="order_number"/>
<field eval=""R0/00004"" name="reservationno"/>
@@ -104,7 +190,7 @@
<record id="hotel_reservation_order_1" model="hotel.reservation.order">
<field eval="[(6,0,[ref('hotel_restaurant.hotel_restaurant_tables_table1'),ref('hotel_restaurant.hotel_restaurant_tables_table0')])]" name="table_no"/>
- <field eval=""2008-04-25 10:09:00"" name="date1"/>
+ <field eval=""2013-04-25 10:09:00"" name="date1"/>
<field eval=""ORR/00002"" name="order_number"/>
<field eval=""R0/00006"" name="reservationno"/>
@@ -120,11 +206,9 @@
<record id="hotel_restaurant_order_0" model="hotel.restaurant.order">
<field eval="[(6,0,[ref('hotel_restaurant.hotel_restaurant_tables_table1'),ref('hotel_restaurant.hotel_restaurant_tables_table0')])]" name="table_no"/>
- <field eval=""2008-04-25 15:09:00"" name="o_date"/>
+ <field eval=""2013-04-25 15:09:00"" name="o_date"/>
<field eval=""OR/00001"" name="order_no"/>
<field name="room_no" ref="hotel.hotel_room_6"/>
- <field name="waiter_name" ref="base.res_partner_agrolait"/>
-
</record>
<record id="hotel_restaurant_order_list_0" model="hotel.restaurant.order.list">
<field name="o_list" ref="hotel_restaurant_order_0"/>
@@ -135,13 +219,12 @@
<record id="hotel_restaurant_order_1" model="hotel.restaurant.order">
<field eval="[(6,0,[ref('hotel_restaurant.hotel_restaurant_tables_table2')])]" name="table_no"/>
- <field eval=""2008-04-22 12:09:00"" name="o_date"/>
+ <field eval=""2013-04-22 12:09:00"" name="o_date"/>
<field eval=""OR/00002"" name="order_no"/>
<field name="room_no" ref="hotel.hotel_room_6"/>
- <field name="waiter_name" ref="base.res_partner_agrolait"/>
-
</record>
- <record id="hotel_restaurant_order_list_1" model="hotel.restaurant.order.list">
+
+ <record id="hotel_restaurant_order_list_1" model="hotel.restaurant.order.list">
<field name="o_list" ref="hotel_restaurant_order_1"/>
<field name="name" ref="hotel_fooditem_0"/>
<field name="item_qty">3</field>
=== modified file 'hotel_restaurant/hotel_restaurant_view.xml'
--- hotel_restaurant/hotel_restaurant_view.xml 2012-05-22 14:06:57 +0000
+++ hotel_restaurant/hotel_restaurant_view.xml 2014-04-18 16:01:07 +0000
@@ -8,13 +8,15 @@
<record model="ir.ui.view" id="view_hotel_restaurant_tables_form">
<field name="name">hotel_restaurant_tables.form</field>
<field name="model">hotel.restaurant.tables</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Tables Detail">
+ <form string="Tables Detail" version="7.0">
+ <sheet>
+ <group>
<field name="name" colspan="1" select="1"/>
<newline/>
<field name="capacity"/>
-
+ </group>
+ </sheet>
</form>
</field>
</record>
@@ -22,7 +24,6 @@
<record model="ir.ui.view" id="view_hotel_restaurant_tables_search">
<field name="name">hotel_restaurant_tables.search</field>
<field name="model">hotel.restaurant.tables</field>
- <field name="type">search</field>
<field name="arch" type="xml">
<search string="Tables Detail">
<field name="name"/>
@@ -38,7 +39,6 @@
<record model="ir.ui.view" id="view_hotel_restaurant_tables_tree">
<field name="name">hotel_restaurant_tables.tree</field>
<field name="model">hotel.restaurant.tables</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Tables Detail">
<field name="name"/>
@@ -65,35 +65,44 @@
<record model="ir.ui.view" id="view_hotel_restaurant_reservation_form">
<field name="name">hotel_restaurant_reservation.form</field>
<field name="model">hotel.restaurant.reservation</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Table Reservation">
- <field name="reservation_id" select="1"/>
- <field name="room_no"/>
- <newline/>
- <field name="start_date"/>
- <field name="end_date"/>
- <field name="cname" on_change="onchange_partner_id(cname)"/>
- <field name="partner_address_id"/>
- <separator colspan='4' string="Table List"/>
- <field name="tableno" colspan="4" nolabel='1'/>
- <newline/>
- <field name="state"/>
- <group col="5" colspan="2">
- <button string="Confirm" name="confirm" states="draft" type="workflow" icon="gtk-ok"/>
- <button string="Done" name="done" states="confirm" type="workflow" icon="gtk-apply"/>
- <button string="Cancel" name="cancel" states="confirm" type="workflow" icon="gtk-cancel"/>
- <button string="Set to Draft" name="action_set_to_draft" states="cancel" type="object" icon="gtk-file"/>
- <button string="Create Order" name="create_order" type="object" states="done" icon="gtk-new"/>
- </group>
-
+ <form string="Table Reservation" version="7.0">
+ <header>
+ <button string="Confirm" name="confirm" states="draft" type="workflow" icon="gtk-ok"/>
+ <button string="Done" name="done" states="confirm" type="workflow" icon="gtk-apply"/>
+ <button string="Cancel" name="cancel" states="confirm" type="workflow" icon="gtk-cancel"/>
+ <button string="Set to Draft" name="action_set_to_draft" states="cancel" type="object" icon="gtk-file"/>
+ <button string="Create Order" name="create_order" type="object" states="done" icon="gtk-new"/>
+ <field name="state" widget="statusbar"/>
+ </header>
+ <sheet>
+ <h1>
+ <label string="Table Booking" colspan="4" />
+ <field name="reservation_id" colspan="4" select="1" />
+ </h1>
+ <group>
+ <group colspan="2" >
+ <field name="room_no" />
+ </group>
+ <newline/>
+ <group colspan="4" col="4">
+ <field name="start_date"/>
+ <field name="end_date"/>
+ <field name="cname" on_change="onchange_partner_id(cname)"/>
+ <field name="partner_address_id"/>
+ </group>
+ <group colspan="4">
+ <separator colspan='4' string="Table List"/>
+ <field name="tableno" colspan="4" nolabel='1'/>
+ </group>
+ </group>
+ </sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_hotel_restaurant_reservation_tree">
<field name="name">hotel_restaurant_reservation.tree</field>
<field name="model">hotel.restaurant.reservation</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Table Reservation">
<field name="reservation_id"/>
@@ -103,7 +112,6 @@
<field name="cname"/>
<field name="partner_address_id"/>
<field name="tableno"/>
-
</tree>
</field>
</record>
@@ -127,18 +135,29 @@
<record model="ir.ui.view" id="view_hotel_reservation_order_form">
<field name="name">hotel_reservation_order.form</field>
<field name="model">hotel.reservation.order</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Order">
- <field name="order_number"/>
+ <form string="Order" version="7.0">
+ <header>
+ <button string="Generate KOT" name="reservation_generate_kot" type="object" icon="gtk-go-forward"/>
+ </header>
+ <sheet>
+ <h1>
+ <label string="Order" colspan="4" />
+ <field name="order_number" colspan="4"/>
+ </h1>
+ <group>
+ <group colspan="2">
<field name="reservationno"/>
- <field name="date1" />
- <field name="waitername"/>
- <newline/>
- <separator colspan='4' string='Table List'/>
- <field name="table_no" colspan="4" nolabel='1'/>
- <newline/>
- <separator colspan='4' string='Order List'/>
+ </group>
+ <group colspan="4" col="4" >
+ <field name="date1" />
+ <field name="waitername" />
+ </group>
+ <newline/>
+ <separator colspan='4' string='Table List' />
+ <field name="table_no" colspan="4" nolabel='1' />
+ <newline/>
+ <separator colspan='4' string='Order List' />
<field name="order_list" colspan="4" nolabel='1'>
<form string="Order List">
<field name="name" on_change="on_change_item_name(name)"/>
@@ -154,19 +173,22 @@
</tree>
</field>
<newline/>
- <group col="7" colspan="4">
- <field name="amount_subtotal"/>
- <field name="tax"/>
- <field name="amount_total"/>
- <button string="Generate KOT" name="reservation_generate_kot" type="object" icon="gtk-go-forward"/>
+ <group colspan="2" class="oe_subtotal_footer oe_right">
+ <field name="amount_subtotal" widget='monetary'/>
+ <field name="tax" widget='monetary'/>
+ <div class="oe_subtotal_footer_separator oe_inline">
+ <label for="amount_total" />
+ </div>
+ <field name="amount_total" nolabel="1" widget='monetary'/>
</group>
+ </group>
+ </sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_hotel_reservation_order_tree">
<field name="name">hotel_reservation_order.tree</field>
<field name="model">hotel.reservation.order</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Order">
<field name="order_number"/>
@@ -200,13 +222,24 @@
<record model="ir.ui.view" id="view_hotel_restaurant_order_form">
<field name="name">hotel_restaurant_order.form</field>
<field name="model">hotel.restaurant.order</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Order">
- <field name="order_no"/>
- <field name="o_date" />
- <field name="room_no"/>
- <field name="waiter_name"/>
+ <form string="Order" version="7.0">
+ <header>
+ <button string="Generate KOT" name="generate_kot" type="object" icon="gtk-go-forward"/>
+ </header>
+ <sheet>
+ <h1>
+ <label string="Table Order" colspan="4" />
+ <field name="order_no" colspan="4"/>
+ </h1>
+ <group>
+ <group>
+ <field name="o_date" />
+ </group>
+ <group colspan="2" col="4">
+ <field name="room_no"/>
+ <field name="waiter_name"/>
+ </group>
<newline/>
<separator colspan='4' string='Table List'/>
<field name="table_no" colspan="4" nolabel='1'/>
@@ -224,23 +257,26 @@
<field name="item_qty"/>
<field name="item_rate"/>
<field name="price_subtotal"/>
-
</tree>
</field>
+ </group>
<newline/>
- <group col="7" colspan="4">
- <field name="amount_subtotal"/>
- <field name="tax"/>
- <field name="amount_total"/>
- <button string="Generate KOT" name="generate_kot" type="object" icon="gtk-go-forward"/>
+ <group col="2" class="oe_subtotal_footer oe_right">
+ <field name="amount_subtotal" widget="monetary"/>
+ <field name="tax" widget='monetary'/>
+ <div class="oe_subtotal_footer_separator oe_inline">
+ <label for="amount_total" />
+ </div>
+ <field name="amount_total" nolabel="1" widget='monetary'/>
</group>
+ <div class="oe_clear"/>
+ </sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_hotel_restaurant_order_tree">
<field name="name">hotel_restaurant_order.tree</field>
<field name="model">hotel.restaurant.order</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Order">
<field name="order_no"/>
@@ -248,8 +284,7 @@
<field name="table_no"/>
<field name="room_no"/>
<field name="waiter_name"/>
- <field name="order_list" />
-
+ <field name="order_list"/>
</tree>
</field>
</record>
@@ -273,14 +308,19 @@
<record model="ir.ui.view" id="view_hotel_restaurant_kitchen_order_tickets_form">
<field name="name">hotel_restaurant_kitchen_order_tickets.form</field>
<field name="model">hotel.restaurant.kitchen.order.tickets</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="KOT List">
- <field name="orderno" select="1"/>
- <field name="resno"/>
- <field name="kot_date" select="1"/>
- <field name="room_no" select="1"/>
- <field name="w_name"/>
+ <form string="KOT List" version="7.0">
+ <sheet>
+ <group>
+ <group colspan="4">
+ <field name="orderno"/>
+ <field name="resno" />
+ </group>
+ <field name="kot_date"/>
+ <group colspan="4" col="4">
+ <field name="room_no"/>
+ <field name="w_name"/>
+ </group>
<newline/>
<separator colspan='4' string='Table List'/>
<field name="tableno" select="1" colspan="4" nolabel='1'/>
@@ -296,19 +336,17 @@
<tree string="Order List">
<field name="name" />
<field name="item_qty"/>
-
</tree>
</field>
-
+ </group>
+ </sheet>
</form>
</field>
</record>
-
<record model="ir.ui.view" id="view_hotel_restaurant_kitchen_order_tickets_tree">
<field name="name">hotel_restaurant_kitchen_order_tickets.tree</field>
<field name="model">hotel.restaurant.kitchen.order.tickets</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="KOT List">
<field name="orderno" />
@@ -317,17 +355,17 @@
<field name="room_no"/>
<field name="w_name"/>
<field name="tableno"/>
- <field name="kot_list"/>
+ <!-- <field name="kot_list"/> -->
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="open_view_hotel_restaurant_kitchen_order_tickets_form_tree">
- <field name="name">Kitchen Order List</field>
+ <field name="name">Kitchen Order Tickets</field>
<field name="res_model">hotel.restaurant.kitchen.order.tickets</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
- <menuitem name="KOT"
+ <menuitem name="Kitchen Order Ticket"
id="menu_open_view_hotel_restaurant_kitchen_order_tickets_form_tree"
action="open_view_hotel_restaurant_kitchen_order_tickets_form_tree"
sequence="12"
@@ -335,22 +373,23 @@
<!-- Menucard Category -->
-
<record model="ir.ui.view" id="view_hotel_menucard_type_form">
<field name="name">hotel_menucard_type_form</field>
<field name="model">hotel.menucard.type</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Hotel Food Items Type">
+ <form string="Hotel Food Items Type" version="7.0">
+ <sheet>
+ <group>
<field name="name"/>
<field name="parent_id" domain="[('ismenutype','=',True)]"/>
- </form>
+ </group>
+ </sheet>
+ </form>
</field>
</record>
<record model="ir.ui.view" id="view_hotel_menucard_type_list">
<field name="name">hotel_menucard_type_list</field>
<field name="model">hotel.menucard.type</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Hotel Food Items Type">
<field name="complete_name"/>
@@ -359,13 +398,13 @@
</field>
</record>
<record model="ir.actions.act_window" id="action_hotel_menucard_type_view_form">
- <field name="name">Hotel FoodItem Type</field>
+ <field name="name">Hotel Food Item Type</field>
<field name="res_model">hotel.menucard.type</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="menu_hotel_food_item" name="Food Item" parent="hotel.hotel_configuration_menu" sequence="2"/>
- <menuitem name="FoodItem Types"
+ <menuitem name="Food Item Types"
id="menu_action_hotel_menucard_type_view_form"
action="action_hotel_menucard_type_view_form"
parent="menu_hotel_food_item" sequence="12"/>
@@ -373,45 +412,54 @@
<record model="ir.ui.view" id="view_hotel_menucard_form">
<field name="name">hotel.menucard.form</field>
<field name="model">hotel.menucard</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Hotel Menucard">
+ <form string="Hotel Menucard" version="7.0">
+ <sheet>
+ <field name="image" widget="image" class="oe_avatar oe_left"/>
+ <div class="oe_title">
+ <div class="oe_edit_only">
+ <label for="name" string="Food Item" />
+ </div>
+ <h1>
+ <field name="name" select="1" />
+ </h1>
+ <label for="categ_id" class="oe_edit_only"/>
+ <h2>
+ <field name="categ_id" select="1" domain="[('ismenutype','=',True)]" />
+ </h2>
+ </div>
<notebook>
<page string="Information">
- <field name="name" select="1"/>
-
- <newline/>
- <field name="categ_id" select="1" domain="[('ismenutype','=',True)]"/>
- <field name="type" select="2"/>
- <newline/>
- <field name="procure_method"/>
- <field name="uom_id"/>
- <field name="uom_po_id"/>
- <field name="product_manager" select="2"/>
- <newline/>
- <field name="supplier_taxes_id" colspan="4"/>
- <field name="taxes_id" colspan="4"/>
+ <group colspan="4" col="2">
+ <group colspan="4" col="4">
+ <field name="type" select="2"/>
+ <field name="product_manager" select="2"/>
+ <field name="uom_id"/>
+ <field name="uom_po_id"/>
+ </group>
+ </group>
+ <newline/>
+ <separator string="Supplier Taxes" colspan='4' />
+ <field name="supplier_taxes_id" colspan="4" help='List of supplier taxes applied on the perticular Food Item. '/>
+ <newline/>
+ <separator string="Customer Taxes" colspan='4' />
+ <field name="taxes_id" colspan="4" help='List of customer taxes applied on the perticular Food Item.' />
</page>
<page string="Procurement">
- <field name="supply_method"/>
- <field name="active" select="2"/>
- <newline/>
+ <group colspan="4" col="4">
+ <field name="cost_method"/>
+ <field name="active" select="2"/>
<field name="list_price"/>
- <field name="sale_ok" select="2"/>
- <field name="standard_price"/>
- <field name="purchase_ok" select="2"/>
- <field name="cost_method"/>
- <field name="rental" select="2"/>
- <newline/>
-
- <field name="price_margin"/>
- <field name="price_extra"/>
-
- <field name="uos_id" />
- <field name="uos_coeff" />
- <newline />
+ <field name="sale_ok" select="2"/>
+ <field name="standard_price"/>
+ <field name="rental" select="2"/>
+ <field name="price_margin"/>
+ <field name="price_extra"/>
+ <field name="uos_id" />
+ <field name="uos_coeff" />
+ <separator string="Suppliers" colspan='4' />
<field name="seller_ids" colspan="4" nolabel="1" widget="one2many_list"/>
-
+ </group>
</page>
<page string="Descriptions">
<separator string="Description" />
@@ -421,8 +469,8 @@
<separator string="Purchase Description"/>
<field name="description_purchase" colspan="4" nolabel="1"/>
</page>
-
</notebook>
+ </sheet>
</form>
</field>
</record>
@@ -430,7 +478,6 @@
<record model="ir.ui.view" id="view_hotel_menucard_search">
<field name="name">hotel.menucard.search</field>
<field name="model">hotel.menucard</field>
- <field name="type">search</field>
<field name="arch" type="xml">
<search string="Hotel Menucard" >
<field name="name" />
@@ -443,7 +490,6 @@
<record model="ir.ui.view" id="view_hotel_menucard_tree">
<field name="name">hotel.menucard.tree</field>
<field name="model">hotel.menucard</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Hotel Menucard" >
<field name="name" />
@@ -452,11 +498,81 @@
</tree>
</field>
</record>
+
+ <record model="ir.ui.view" id="hotel_manucard_kanban_view">
+ <field name="name">Menucard Kanban</field>
+ <field name="model">hotel.menucard</field>
+ <field name="arch" type="xml">
+ <kanban class="oe_kanban_quickcreate_textarea" version="7.0">
+ <field name="name"/>
+ <field name="image"/>
+ <field name="list_price"/>
+ <templates>
+ <t t-name="kanban-box">
+ <div class="oe_kanban_vignette oe_semantic_html_override">
+ <a type="open"><img t-att-src="kanban_image('hotel.menucard', 'image', record.id.value)" class="oe_kanban_image"/></a>
+ <div class="oe_kanban_details">
+ <h4>
+ <a type="open">
+ <t t-if="record.code.raw_value">[<field name="code"/>]</t> <field name="name"/>
+ </a>
+ </h4>
+ <div name="tags"/>
+ <ul>
+ <li>Price: <field name="lst_price"></field></li>
+ <li>Category: <field name="categ_id"></field></li>
+ </ul>
+ </div>
+ </div>
+ </t>
+ </templates>
+ <!-- <templates>
+ <t t-name="kanban-box">
+
+ <t t-set="record.group_fancy" t-value="1" groups="note.group_note_fancy"/>
+
+ <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_global_click_edit oe_semantic_html_override oe_kanban_card #{record.group_fancy==1 ? 'oe_kanban_card_fancy' : ''}">
+ <div class="oe_dropdown_kanban">
+
+ dropdown menu
+ <span class="oe_dropdown_toggle">
+ <span class="oe_e">í</span>
+ <ul class="oe_dropdown_menu">
+ <li><a type="delete">Delete</a></li>
+ <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
+ </ul>
+ </span>
+ <div style="display: inline">
+ <a name="onclick_note_is_done" type="object" t-if="record.open.raw_value" class="oe_e">W</a>
+ <a name="onclick_note_not_done" type="object" t-if="!record.open.raw_value" class="oe_e">W</a>
+ </div>
+ </div>
+ kanban note
+ <div t-attf-class="oe_kanban_content #{record.open.raw_value ? '' : 'note_text_line_through'}">
+ title
+ <field name="name"/>
+ </div>
+ <div class="oe_clear"></div>
+ <field name="tag_ids"/>
+ <div class="oe_right">
+ <t t-foreach="record.message_follower_ids.raw_value" t-as="follower">
+ <img t-if="record.current_partner_id.raw_value!=follower" t-att-src="kanban_image('res.partner', 'image_small', follower)" width="24" height="24" class="oe_kanban_avatar" t-att-data-member_id="follower"/>
+ </t>
+ </div>
+ <div class="oe_clear"></div>
+ </div>
+ </t>
+ </templates> -->
+
+ </kanban>
+ </field>
+ </record>
+
<record model="ir.actions.act_window" id="action_hotel_menucard_form">
<field name="name">Hotel Menucard</field>
<field name="res_model">hotel.menucard</field>
<field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
+ <field name="view_mode">tree,form,kanban</field>
</record>
<menuitem name="Food Items"
=== modified file 'hotel_restaurant/hotel_restaurant_workflow.xml'
--- hotel_restaurant/hotel_restaurant_workflow.xml 2012-05-18 07:39:13 +0000
+++ hotel_restaurant/hotel_restaurant_workflow.xml 2014-04-18 16:01:07 +0000
@@ -30,16 +30,22 @@
<field name="name">cancel</field>
<field name="kind">function</field>
<field name="action">table_cancel()</field>
-
</record>
+
<record model="workflow.activity" id="act_done">
<field name="wkf_id" ref="wkf_table_resrvation" />
<field name="name">done</field>
- <field name="flow_stop">True</field>
+ <field name="flow_stop">True</field>
<field name="kind">stopall</field>
<field name="action">table_done()</field>
-
+<!-- write({'state':'done'})</field> -->
</record>
+
+ <record model="workflow.activity" id="act_create_order">
+ <field name="wkf_id" ref="wkf_table_resrvation" />
+ <field name="name">create_order</field>
+ <field name="kind">function</field>
+ </record>
<!-- Transition -->
<record model="workflow.transition" id="t1">
@@ -64,7 +70,12 @@
<field name="act_from" ref="act_cancel" />
<field name="act_to" ref="act_draft" />
<field name="signal">settodraft</field>
-
</record>
+
+ <record model="workflow.transition" id="t8">
+ <field name="act_from" ref="act_done" />
+ <field name="act_to" ref="act_create_order" />
+ <field name="signal">create_order</field>
+ </record>
</data>
</openerp>
\ No newline at end of file
=== modified file 'hotel_restaurant/i18n/es.po' (properties changed: -x to +x)
=== modified file 'hotel_restaurant/i18n/sv.po' (properties changed: -x to +x)
=== modified file 'hotel_restaurant/report/__init__.py'
--- hotel_restaurant/report/__init__.py 2012-05-18 07:39:13 +0000
+++ hotel_restaurant/report/__init__.py 2014-04-18 16:01:07 +0000
@@ -1,24 +1,25 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import hotel_restaurant_report
+from . import hotel_restaurant_report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_restaurant/report/bill.rml'
--- hotel_restaurant/report/bill.rml 2012-05-18 07:39:13 +0000
+++ hotel_restaurant/report/bill.rml 2014-04-18 16:01:07 +0000
@@ -15,13 +15,9 @@
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
<blockBackground colorName="#c0c0c0" start="0,0" stop="0,0"/>
- <blockBackground colorName="#ffffff" start="1,0" stop="1,0"/>
+ <blockBackground colorName="#c0c0c0" start="1,0" stop="1,0"/>
<blockBackground colorName="#c0c0c0" start="2,0" stop="2,0"/>
- <blockBackground colorName="#ffffff" start="3,0" stop="3,0"/>
- <blockBackground colorName="#c0c0c0" start="0,1" stop="0,1"/>
- <blockBackground colorName="#ffffff" start="1,1" stop="1,1"/>
- <blockBackground colorName="#c0c0c0" start="2,1" stop="2,1"/>
- <blockBackground colorName="#ffffff" start="3,1" stop="3,1"/>
+ <blockBackground colorName="#c0c0c0" start="3,0" stop="3,0"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
@@ -32,6 +28,7 @@
<blockTableStyle id="Table6">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
+ <lineStyle kind="GRID" colorName="black"/>
<blockBackground colorName="#ffffff" start="0,0" stop="0,0"/>
</blockTableStyle>
<blockTableStyle id="Table4">
@@ -52,6 +49,7 @@
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
+ <lineStyle kind="GRID" colorName="black"/>
<blockBackground colorName="#ffffff" start="0,0" stop="0,0"/>
<blockBackground colorName="#ffffff" start="1,0" stop="1,0"/>
<blockBackground colorName="#ffffff" start="2,0" stop="2,0"/>
@@ -60,6 +58,7 @@
<blockTableStyle id="Table5">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
+ <lineStyle kind="GRID" colorName="black"/>
<blockBackground colorName="#c0c0c0" start="1,0" stop="1,0"/>
<blockBackground colorName="#ffffff" start="2,0" stop="2,0"/>
<blockBackground colorName="#c0c0c0" start="1,1" stop="1,1"/>
@@ -68,6 +67,7 @@
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
+ <lineStyle kind="GRID" colorName="black"/>
<blockBackground colorName="#c0c0c0" start="1,0" stop="1,0"/>
<blockBackground colorName="#ffffff" start="2,0" stop="2,0"/>
</blockTableStyle>
@@ -76,7 +76,7 @@
</initialize>
<paraStyle name="P1" fontName="Times-Roman" alignment="LEFT"/>
<paraStyle name="P2" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="LEFT"/>
- <paraStyle name="P3" fontName="Times-Roman" fontSize="14.0" leading="17" alignment="RIGHT"/>
+ <paraStyle name="P3" fontName="Times-Roman" fontSize="14.0" leading="17" alignment="CENTER"/>
<paraStyle name="P4" fontName="Times-Roman" alignment="LEFT"/>
<paraStyle name="P5" fontName="Times-Roman" alignment="LEFT"/>
<paraStyle name="P6" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="LEFT"/>
@@ -98,6 +98,7 @@
<paraStyle name="P22" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="CENTER"/>
<paraStyle name="P23" fontName="Times-Roman" alignment="LEFT"/>
<paraStyle name="P24" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="LEFT" backColor="#e6e6ff"/>
+ <paraStyle name="P25" fontName="Times-Roman" fontSize="10.0" leading="13" alignment="CENTER"/>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
@@ -108,49 +109,58 @@
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
</stylesheet>
<story>
- <para style="P3">Customer Order Bill</para>
+ <para style="P1">
+ <font color="white"> </font>
+ </para>
+ <para style="P1">
+ <font color="white"> </font>
+ </para>
+ <para style="P3"><b>Customer Order Bill</b></para>
<para style="P1">
<font color="white"> </font>
</para>
<para style="P1">[[repeatIn(objects,'o')]]</para>
- <blockTable colWidths="80.0,152.0,81.0,169.0" style="Table7">
+ <blockTable colWidths="120.0,120.0,120.0,120.0" style="Table7">
<tr>
- <td>
- <para style="P13">Order Number :</para>
- </td>
- <td>
- <para style="P10">[[o.order_no]]</para>
- </td>
- <td>
- <para style="P14">Room Number :</para>
- </td>
- <td>
- <para style="P10">[[o.room_no.name]]</para>
+ <td>
+ <para style="P25">Date</para>
+ </td>
+ <td>
+ <para style="P25">Order Number</para>
+ </td>
+ <td>
+ <para style="P25">Waiter Name :</para>
+ </td>
+ <td>
+ <para style="P25">Room Number :</para>
</td>
</tr>
<tr>
<td>
- <para style="P21">Date :</para>
- </td>
- <td>
- <para style="P2">[[o.o_date]]</para>
- </td>
- <td>
- <para style="P7">Waiter Name :</para>
- </td>
- <td>
- <para style="P10">[[o.waiter_name.name]]</para>
+ <para style="P25">[[formatLang(o.o_date, date="TRUE")]]</para>
+ </td>
+ <td>
+ <para style="P25">[[o.order_no]]</para>
+ </td>
+ <td>
+ <para style="P25">[[o.waiter_name.name]]</para>
+ </td>
+ <td>
+ <para style="P25">[[o.room_no.name]]</para>
</td>
</tr>
</blockTable>
- <blockTable colWidths="482.0" style="Table1">
+ <para style="P1">
+ <font color="white"> </font>
+ </para>
+ <blockTable colWidths="480.0" style="Table1">
<tr>
<td>
<para style="P24">Table Information</para>
</td>
</tr>
</blockTable>
- <blockTable colWidths="482.0" style="Table6">
+ <blockTable colWidths="480.0" style="Table6">
<tr>
<td>
<para style="P10">[[repeatIn(o.table_no,'rec2')]]</para>
@@ -158,7 +168,10 @@
</td>
</tr>
</blockTable>
- <blockTable colWidths="482.0" style="Table4">
+ <para style="P1">
+ <font color="white"> </font>
+ </para>
+ <blockTable colWidths="480.0" style="Table4">
<tr>
<td>
<para style="P6">Order List</para>
@@ -181,7 +194,7 @@
</td>
</tr>
</blockTable>
- <blockTable colWidths="123.0,118.0,119.0,121.0" style="Table3">
+ <blockTable colWidths="120.0,120.0,120.0,120.0" style="Table3">
<tr>
<td>
<para style="P12">[[repeatIn(o.order_list,'rec')]] </para>
@@ -191,14 +204,14 @@
<para style="P12">[[rec.item_qty]]</para>
</td>
<td>
- <para style="P12">[[rec.item_rate]]</para>
+ <para style="P11">[[rec.item_rate]]</para>
</td>
<td>
<para style="P11">[[rec.price_subtotal]]</para>
</td>
</tr>
</blockTable>
- <blockTable colWidths="241.0,120.0,121.0" style="Table5">
+ <blockTable colWidths="240.0,120.0,120.0" style="Table5">
<tr>
<td>
<para style="P5">
@@ -222,11 +235,11 @@
<para style="P7">Tax :</para>
</td>
<td>
- <para style="P9">[[o.tax]]</para>
+ <para style="P9">[[ formatLang(o.tax, digits=get_digits(dp='Account')) ]]</para>
</td>
</tr>
</blockTable>
- <blockTable colWidths="241.0,120.0,121.0" style="Table2">
+ <blockTable colWidths="240.0,120.0,120.0" style="Table2">
<tr>
<td>
<para style="P4">
=== modified file 'hotel_restaurant/report/hotel_restaurant_report.py'
--- hotel_restaurant/report/hotel_restaurant_report.py 2012-05-23 07:17:58 +0000
+++ hotel_restaurant/report/hotel_restaurant_report.py 2014-04-18 16:01:07 +0000
@@ -1,46 +1,45 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
import time
-from report import report_sxw
-import datetime
-import pooler
+from openerp.report import report_sxw
class hotel_restaurant_report(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(hotel_restaurant_report, self).__init__(cr, uid, name, context)
self.localcontext.update( {
'time': time,
- 'get_res_data':self.get_res_data,
+ 'get_res_data': self.get_res_data,
})
self.context=context
-
+
def get_res_data(self,date_start,date_end):
- tids = self.pool.get('hotel.restaurant.reservation').search(self.cr,self.uid,[('start_date', '>=', date_start),('end_date', '<=', date_end)])
- res = self.pool.get('hotel.restaurant.reservation').browse(self.cr,self.uid,tids)
+ rest_reservation_obj = self.pool.get('hotel.restaurant.reservation')
+ tids = rest_reservation_obj.search(self.cr, self.uid, [('start_date', '>=', date_start),('end_date', '<=', date_end)])
+ res = rest_reservation_obj.browse(self.cr, self.uid, tids)
return res
-report_sxw.report_sxw('report.hotel.kot', 'hotel.restaurant.order', 'addons/hotel_restaurant/report/kot.rml',parser=hotel_restaurant_report)
-report_sxw.report_sxw('report.hotel.bill', 'hotel.restaurant.order', 'addons/hotel_restaurant/report/bill.rml',parser=hotel_restaurant_report)
-report_sxw.report_sxw('report.hotel.table.res', 'hotel.restaurant.reservation', 'addons/hotel_restaurant/report/res_table.rml',parser=hotel_restaurant_report)
+report_sxw.report_sxw('report.hotel.kot', 'hotel.restaurant.order', 'addons/hotel_restaurant/report/kot.rml', parser=hotel_restaurant_report)
+report_sxw.report_sxw('report.hotel.bill', 'hotel.restaurant.order', 'addons/hotel_restaurant/report/bill.rml', parser=hotel_restaurant_report)
+report_sxw.report_sxw('report.hotel.table.res', 'hotel.restaurant.reservation', 'addons/hotel_restaurant/report/res_table.rml', parser=hotel_restaurant_report)
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_restaurant/report/hotel_restaurant_report.xml'
--- hotel_restaurant/report/hotel_restaurant_report.xml 2012-05-23 07:17:58 +0000
+++ hotel_restaurant/report/hotel_restaurant_report.xml 2014-04-18 16:01:07 +0000
@@ -20,6 +20,7 @@
model="hotel.restaurant.reservation"
name="hotel.table.res"
rml="hotel_restaurant/report/res_table.rml"
- auto="False"/>
+ auto="False"
+ menu="False"/>
</data>
</openerp>
=== modified file 'hotel_restaurant/report/kot.rml'
--- hotel_restaurant/report/kot.rml 2012-05-18 07:39:13 +0000
+++ hotel_restaurant/report/kot.rml 2014-04-18 16:01:07 +0000
@@ -14,36 +14,39 @@
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
- <blockBackground colorName="#DAB082" start="0,0" stop="1,0" />
+ <blockBackground colorName="#c0c0c0" start="0,0" stop="0,0"/>
+ <blockBackground colorName="#c0c0c0" start="1,0" stop="1,0"/>
+ <blockBackground colorName="#c0c0c0" start="2,0" stop="2,0"/>
+ <blockBackground colorName="#c0c0c0" start="3,0" stop="3,0"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
- <blockBackground colorName="#DAB082" start="0,0" stop="1,0" />
+ <blockBackground colorName="#c0c0c0" start="0,0" stop="1,0" />
</blockTableStyle>
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
- <blockBackground colorName="#DAB082" start="0,0" stop="1,0" />
+ <blockBackground colorName="#c0c0c0" start="0,0" stop="1,0" />
</blockTableStyle>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
- <blockBackground colorName="#DAB082" start="0,0" stop="1,0" />
+ <blockBackground colorName="#c0c0c0" start="0,0" stop="1,0" />
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
- <blockBackground colorName="#DAB082" start="0,0" stop="1,0" />
+ <blockBackground colorName="#c0c0c0" start="0,0" stop="1,0" />
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Times-Roman" alignment="LEFT"/>
- <paraStyle name="P2" fontName="Times-Roman" fontSize="16.0" leading="20" alignment="CENTER"/>
+ <paraStyle name="P2" fontName="Helvetica" fontSize="16.0" leading="20" alignment="CENTER"/>
<paraStyle name="P3" fontName="Times-Roman" alignment="LEFT"/>
<paraStyle name="P4" fontName="Times-Roman" alignment="LEFT"/>
<paraStyle name="P5" fontName="Times-Roman" alignment="LEFT"/>
@@ -57,60 +60,51 @@
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
</stylesheet>
<story>
+ <para style="P1">
+ <font color="white"> </font>
+ </para>
+ <para style="P1">
+ <font color="white"> </font>
+ </para>
<para style="P2">Kitchen Order Ticket</para>
<para style="P1">[[repeatIn(objects,'o')]]</para>
<para style="P1">
<font color="white"> </font>
</para>
- <blockTable colWidths="241.0,241.0" style="Table5">
- <tr>
- <td>
- <para style="P3"><font face="Helvetica-Bold" color="#19140E">Date</font></para>
- </td>
- <td>
- <para style="P3"><font face="Helvetica-Bold" color="#19140E">Served By</font></para>
- </td>
- </tr>
- <tr>
- <td>
- <para style="P1">[[o.o_date]]</para>
- </td>
- <td>
- <para style="P3">[[o.waiter_name.name]]</para>
- </td>
- </tr>
- </blockTable>
- <para style="P1">
- <font color="white"> .........</font>
- <font color="white"> .........</font>
- <font color="white"> .........</font>
- <font color="white"> .........</font>
- <font color="white"> .........</font>
- <font color="white"> .........</font>
- <font color="white"> .........</font>
- </para>
- <blockTable colWidths="241.0,241.0" style="Table1">
- <tr>
- <td>
- <para style="P3"><font face="Helvetica-Bold" color="#19140E">Order Number</font></para>
- </td>
- <td>
- <para style="P3"><font face="Helvetica-Bold" color="#19140E">Room Number</font></para>
- </td>
- </tr>
- <tr>
- <td>
- <para style="P3">[[o.order_no]]</para>
- </td>
- <td>
- <para style="P3">[[o.room_no.name]]</para>
+ <blockTable colWidths="120.0,120.0,120.0,120.0" style="Table5">
+ <tr>
+ <td>
+ <para style="P3" alignment="CENTER"><font face="Helvetica-Bold" color="#19140E">Date</font></para>
+ </td>
+ <td>
+ <para style="P3" alignment="CENTER"><font face="Helvetica-Bold" color="#19140E">Order Number</font></para>
+ </td>
+ <td>
+ <para style="P3" alignment="CENTER"><font face="Helvetica-Bold" color="#19140E">Served By</font></para>
+ </td>
+ <td>
+ <para style="P3" alignment="CENTER"><font face="Helvetica-Bold" color="#19140E">Room Number</font></para>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <para style="P1" alignment="CENTER">[[ formatLang(o.o_date, date="True") ]]</para>
+ </td>
+ <td>
+ <para style="P3" alignment="CENTER">[[o.order_no]]</para>
+ </td>
+ <td>
+ <para style="P3" alignment="CENTER">[[o.waiter_name.name]]</para>
+ </td>
+ <td>
+ <para style="P3" alignment="CENTER">[[o.room_no.name]]</para>
</td>
</tr>
</blockTable>
<para style="P1">
<font color="white"> </font>
</para>
- <blockTable colWidths="482.0" style="Table2">
+ <blockTable colWidths="480.0" style="Table2">
<tr>
<td>
<para style="P3"><font face="Helvetica-Bold" color="#19140E">Table Number</font></para>
@@ -126,10 +120,7 @@
<para style="P1">
<font color="white"> </font>
</para>
- <para style="P1">
- <font color="white"> </font>
- </para>
- <blockTable colWidths="482.0" style="Table4">
+ <blockTable colWidths="480.0" style="Table4">
<tr>
<td>
<para style="P1"><font face="Helvetica-Bold" color="#19140E">Food Item List </font></para>
@@ -139,7 +130,7 @@
<para style="P1">
<font color="white"> </font>
</para>
- <blockTable colWidths="241.0,241.0" style="Table3">
+ <blockTable colWidths="240.0,240.0" style="Table3">
<tr>
<td>
<para style="P3"><font face="Helvetica-Bold" color="#19140E">Food Item</font></para>
@@ -150,7 +141,8 @@
</tr>
<tr>
<td>
- <para style="P3"><font face="Times-Roman" size="10.0">[[repeatIn(o.order_list,'rec')]]</font><font face="Times-Roman" size="6.0"/>[[rec.name.name]]</para>
+ <para style="P3">[[repeatIn(o.order_list,'rec')]]</para>
+ <para style="P3">[[rec.name.name]]</para>
</td>
<td>
<para style="P3">[[rec.item_qty]]</para>
=== modified file 'hotel_restaurant/report/res_table.rml'
--- hotel_restaurant/report/res_table.rml 2012-05-18 07:39:13 +0000
+++ hotel_restaurant/report/res_table.rml 2014-04-18 16:01:07 +0000
@@ -17,6 +17,7 @@
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
+ <lineStyle kind="GRID" colorName="black"/>
<blockBackground colorName="#c0c0c0" start="0,0" stop="0,0"/>
<blockBackground colorName="#c0c0c0" start="1,0" stop="1,0"/>
<blockBackground colorName="#c0c0c0" start="2,0" stop="2,0"/>
@@ -30,9 +31,10 @@
<paraStyle name="P3" fontName="Times-Roman" fontSize="10.0" leading="14" alignment="CENTER"/>
<paraStyle name="P4" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="CENTER"/>
<paraStyle name="P5" fontName="Times-Roman" fontSize="9.0" leading="11" alignment="CENTER"/>
- <paraStyle name="P6" fontName="Times-Roman" fontSize="14.0" leading="17" alignment="RIGHT"/>
+ <paraStyle name="P6" fontName="Times-Roman" fontSize="14.0" leading="17" alignment="CENTER"/>
<paraStyle name="P7" fontName="Times-Roman" fontSize="12.0" leading="15" alignment="LEFT"/>
<paraStyle name="P8" fontName="Times-Italic" fontSize="10.0" leading="13" alignment="LEFT"/>
+ <paraStyle name="P9" fontName="Helvetica" fontSize="10.0" leading="15" alignment="CENTER"/>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
@@ -42,15 +44,28 @@
<paraStyle name="Table Contents" fontName="Times-Roman"/>
</stylesheet>
<story>
+ <para style="P1">
+ <font color="white"> </font>
+ </para>
+ <para style="P4">
+ <font color="white"> </font>
+ </para>
<blockTable colWidths="482.0" style="Table2">
<tr>
<td>
- <para style="P6">Reservation List</para>
+ <para style="P6">Table Reservation List</para>
</td>
</tr>
</blockTable>
+ <para style="P3">
+ <font color="white"> </font>
+ </para>
<para style="P7">[[repeatIn(objects,'o')]]</para>
- <blockTable colWidths="121.0,124.0,100.0,137.0" style="Table1">
+ <para style="P9"><b>From "</b>[[ formatLang(data['form']['date_start'],date=True) ]]<b>" To "</b>[[ formatLang(data['form']['date_end'],date=True) ]]<b>"</b></para>
+ <para style="P3">
+ <font color="white"> </font>
+ </para>
+ <blockTable colWidths="120.0,150.0,125.0,125.0" style="Table1">
<tr>
<td>
<para style="P3">Reservation No</para>
@@ -71,25 +86,19 @@
<para style="P4">[[o.reservation_id]]</para>
</td>
<td>
- <para style="P5">[[o.cname.name]]</para>
- </td>
- <td>
- <para style="P5">[[o.start_date]]</para>
- </td>
- <td>
- <para style="P5">[[o.end_date]]</para>
+ <para style="P5">[[ o.cname.name ]]</para>
+ </td>
+ <td>
+ <para style="P5">[[ formatLang(o.start_date, date="True") ]]</para>
+ </td>
+ <td>
+ <para style="P5">[[ formatLang(o.end_date, date="True") ]]</para>
</td>
</tr>
</blockTable>
<para style="P2">
<font color="white"> </font>
</para>
- <para style="P2">
- <font color="white"> </font>
- </para>
- <para style="P1">
- <font color="white"> </font>
- </para>
</story>
</document>
=== modified file 'hotel_restaurant/wizard/__init__.py'
--- hotel_restaurant/wizard/__init__.py 2012-05-18 07:39:13 +0000
+++ hotel_restaurant/wizard/__init__.py 2014-04-18 16:01:07 +0000
@@ -1,24 +1,25 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import hotel_restaurant_wizard
+from . import hotel_restaurant_wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_restaurant/wizard/hotel_restaurant_wizard.py'
--- hotel_restaurant/wizard/hotel_restaurant_wizard.py 2012-05-23 07:17:58 +0000
+++ hotel_restaurant/wizard/hotel_restaurant_wizard.py 2014-04-18 16:01:07 +0000
@@ -1,56 +1,44 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-from osv import fields
-from osv import osv
-import time
-from mx import DateTime
-import datetime
-import pooler
-from tools import config
-import wizard
-import netsvc
-import pooler
+from openerp.osv import fields, osv
-class wizard_hotel_restaurant(osv.osv_memory):
-
+class wizard_hotel_restaurant(osv.TransientModel):
_name = 'wizard.hotel.restaurant'
-
_columns = {
- 'date_start' :fields.datetime('Start Date',required=True),
- 'date_end': fields.datetime('End Date',required=True),
+ 'date_start' : fields.datetime('Start Date', required=True),
+ 'date_end': fields.datetime('End Date', required=True),
}
-
- def print_report(self,cr,uid,ids,context=None):
- datas = {
- 'ids': ids,
- 'model': 'hotel.restaurant.reservation',
- 'form': self.read(cr, uid, ids)[0]
+
+ def print_report(self, cr, uid, ids, context=None):
+ values = {
+ 'ids': ids,
+ 'model': 'hotel.restaurant.reservation',
+ 'form': self.read(cr, uid, ids, context=context)[0]
}
return {
'type': 'ir.actions.report.xml',
'report_name': 'hotel.table.res',
- 'datas': datas,
+ 'datas': values,
}
-wizard_hotel_restaurant()
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'hotel_restaurant/wizard/hotel_restaurant_wizard.xml'
--- hotel_restaurant/wizard/hotel_restaurant_wizard.xml 2012-05-23 07:17:58 +0000
+++ hotel_restaurant/wizard/hotel_restaurant_wizard.xml 2014-04-18 16:01:07 +0000
@@ -1,12 +1,13 @@
<?xml version="1.0" ?>
<openerp>
- <data>
+ <data>
+
<!-- <wizard-->
<!-- string="Make Kots"-->
<!-- model="hotel.restaurant.order"-->
<!-- name="hotel.kot.make_kot"-->
<!-- id="wizard_hotel_kot_make_kot"/>-->
-<!-- -->
+
<!-- <wizard-->
<!-- string="Reservation List"-->
<!-- model="hotel.restaurant.reservation"-->
@@ -16,33 +17,35 @@
<record model="ir.ui.view" id="wizard_hotel_restaurant_form_view">
<field name="name">wizard.hotel.restaurant.form</field>
<field name="model">wizard.hotel.restaurant</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Reservation List">
- <field name="date_start"/>
- <field name="date_end"/>
- <newline/>
- <separator colspan='4'/>
- <button special="cancel" string="Cancel" colspan = '2' icon="gtk-cancel"/>
- <button name='print_report' type='object' string='Reservation List' colspan='2' icon="gtk-print"/>
+ <form string="Reservation List" version="7.0">
+ <group col="4">
+ <field name="date_start"/>
+ <field name="date_end"/>
+ </group>
+ <footer>
+ <button name="print_report" string="Table Reservation List" type="object" class="oe_highlight"/>
+ or
+ <button string="Cancel" class="oe_link" special="cancel"/>
+ </footer>
</form>
</field>
</record>
- <record id="action_wizard_hotel_restaurant"
- model="ir.actions.act_window">
+ <record id="action_wizard_hotel_restaurant" model="ir.actions.act_window">
<field name="name">Reservation List</field>
<field name="res_model">wizard.hotel.restaurant</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
-
- <menuitem
- name="Table Reservation List"
- action="action_wizard_hotel_restaurant"
- parent="hotel.hotel_report_menu"
- id="wizard_list_menu"
- sequence="30"/>
- </data>
-</openerp>
+
+ <menuitem
+ name="Table Reservation List"
+ action="action_wizard_hotel_restaurant"
+ parent="hotel.hotel_report_menu"
+ id="wizard_list_menu"
+ sequence="30"/>
+
+ </data>
+</openerp>
\ No newline at end of file
=== added directory 'report_hotel_reservation/Doc'
=== added file 'report_hotel_reservation/Doc/ChangeLog.txt'
--- report_hotel_reservation/Doc/ChangeLog.txt 1970-01-01 00:00:00 +0000
+++ report_hotel_reservation/Doc/ChangeLog.txt 2014-04-18 16:01:07 +0000
@@ -0,0 +1,11 @@
+============================================================================================================================
+ Version Change Log (report_hotel_reservation)
+============================================================================================================================
+0.04 on 2014-04-04 by Dhwani
+ * Standardized the module as per v7 standards.
+
+0.03 on 2014-01-07 by Krunal Soni
+ * Added Accurate licensing terms and Copyright(C) on top inside license info in each py file.
+
+0.02 on 2013-11-13 by Sudhir Arya
+ * Standardized the module as per v7 standards.
\ No newline at end of file
=== modified file 'report_hotel_reservation/__init__.py'
--- report_hotel_reservation/__init__.py 2012-05-18 07:39:13 +0000
+++ report_hotel_reservation/__init__.py 2014-04-18 16:01:07 +0000
@@ -2,8 +2,8 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
-# $Id$
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,11 +16,10 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import report_hotel_reservation
-
+from .import report_hotel_reservation
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'report_hotel_reservation/__openerp__.py'
--- report_hotel_reservation/__openerp__.py 2012-05-22 14:06:57 +0000
+++ report_hotel_reservation/__openerp__.py 2014-04-18 16:01:07 +0000
@@ -1,9 +1,9 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
-# $Id$
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,14 +16,15 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
{
"name" : "Hotel Reservation Management - Reporting",
- "version" : "1.0",
- "author" : "Tiny",
+ "version" : "0.04",
+ "author": ["Serpent Consulting Services Pvt. Ltd.", "OpenERP SA" ],
+ "website": ["http://www.serpentcs.com", "http://www.openerp.com"],
"depends" : ["hotel_reservation"],
"category" : "Generic Modules/Hotel Reservation",
"description": """
@@ -31,12 +32,12 @@
* Current status of reserved room
* List status of room as draft or done state
""",
- "init_xml" : [],
- "demo_xml" : [],
- "update_xml" : ["security/ir.model.access.csv","report_hotel_reservation_view.xml"],
- "active": False,
- "installable": True
+ "data": [
+ "security/ir.model.access.csv",
+ "report_hotel_reservation_view.xml",
+ ],
+ 'installable': True,
+ 'auto_install': False,
}
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'report_hotel_reservation/i18n/es.po' (properties changed: -x to +x)
=== modified file 'report_hotel_reservation/i18n/sv.po' (properties changed: -x to +x)
=== modified file 'report_hotel_reservation/report_hotel_reservation.py'
--- report_hotel_reservation/report_hotel_reservation.py 2012-05-18 07:39:13 +0000
+++ report_hotel_reservation/report_hotel_reservation.py 2014-04-18 16:01:07 +0000
@@ -2,8 +2,8 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
-# $Id$
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,31 +16,27 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-
-from osv import fields,osv
+from openerp.osv import fields, osv
AVAILABLE_STATES = [
- ('draft','Draft'),
- ('confirm','Confirm'),
+ ('draft', 'Draft'),
+ ('confirm', 'Confirm'),
('done', 'Done')
-
]
-class report_hotel_reservation_status(osv.osv):
+class report_hotel_reservation_status(osv.Model):
_name = "report.hotel.reservation.status"
_description = "Reservation By State"
_auto = False
_columns = {
-
- 'reservation_no':fields.char('Reservation No',size=64,readonly=True),
+ 'reservation_no': fields.char('Reservation No', size=64, readonly=True),
'nbr': fields.integer('Reservation', readonly=True),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
-
}
-
+
def init(self, cr):
cr.execute("""
create or replace view report_hotel_reservation_status as (
@@ -53,7 +49,5 @@
hotel_reservation c
group by c.state,c.reservation_no
)""")
-report_hotel_reservation_status()
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== modified file 'report_hotel_reservation/report_hotel_reservation_view.xml'
--- report_hotel_reservation/report_hotel_reservation_view.xml 2012-05-22 14:06:57 +0000
+++ report_hotel_reservation/report_hotel_reservation_view.xml 2014-04-18 16:01:07 +0000
@@ -1,15 +1,11 @@
<?xml version="1.0"?>
<openerp>
-<data>
-
- <!--
- State By Reservation
- -->
-
+ <data>
+
+ <!-- State By Reservation -->
<record model="ir.ui.view" id="view_hotel_reservation_status_tree">
<field name="name">report.hotel.reservation.status.tree</field>
<field name="model">report.hotel.reservation.status</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="States By Reservation">
<field name="reservation_no"/>
@@ -17,10 +13,10 @@
</tree>
</field>
</record>
+
<record model="ir.ui.view" id="view_hotel_reservation_status_form">
<field name="name">report.hotel.reservation.status.form</field>
<field name="model">report.hotel.reservation.status</field>
- <field name="type">form</field>
<field name="arch" type="xml">
<form string="States By Reservation">
<field name="reservation_no"/>
@@ -32,12 +28,10 @@
<record model="ir.ui.view" id="view_hotel_reservation_status_graph">
<field name="name">report.hotel.reservation.status.graph</field>
<field name="model">report.hotel.reservation.status</field>
- <field name="type">graph</field>
<field name="arch" type="xml">
<graph string="States By Reservation" type="pie">
<field name="state"/>
<field name="nbr" operator="+"/>
-
</graph>
</field>
</record>
@@ -45,12 +39,10 @@
<record model="ir.ui.view" id="view_hotel_reservation_status_graph_bar">
<field name="name">report.hotel.reservation.status.graph</field>
<field name="model">report.hotel.reservation.status</field>
- <field name="type">graph</field>
<field name="arch" type="xml">
<graph string="States By Reservation" type="bar" orientation="verticle">
<field name="state"/>
<field name="nbr" operator="+"/>
-
</graph>
</field>
</record>
@@ -60,7 +52,6 @@
<field name="res_model">report.hotel.reservation.status</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
-
</record>
<record model="ir.actions.act_window" id="action_report_hotel_reservation_status_tree_graph_bar">
@@ -68,15 +59,16 @@
<field name="res_model">report.hotel.reservation.status</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
- <field name = "view_id" ref="view_hotel_reservation_status_graph_bar"/>
- </record>
- <menuitem name = "This Month"
- id = "menu_hotel_reservation_this_month" parent= "hotel.hotel_report_menu"/>
-
- <menuitem name="States By Reservation"
- action="action_report_hotel_reservation_status_tree_graph_bar"
- id="menu_hotel_reservation_status_tree_graph_bar"
- sequence="34"
- parent = "menu_hotel_reservation_this_month"/>
-</data>
-</openerp>
+ <field name="view_id" ref="view_hotel_reservation_status_graph_bar"/>
+ </record>
+
+ <menuitem name="This Month" id="menu_hotel_reservation_this_month" parent="hotel.hotel_report_menu"/>
+
+ <menuitem name="States By Reservation"
+ action="action_report_hotel_reservation_status_tree_graph_bar"
+ id="menu_hotel_reservation_status_tree_graph_bar"
+ sequence="34"
+ parent="menu_hotel_reservation_this_month"/>
+
+ </data>
+</openerp>
\ No newline at end of file
=== added directory 'report_hotel_restaurant/Doc'
=== added file 'report_hotel_restaurant/Doc/ChangeLog.txt'
--- report_hotel_restaurant/Doc/ChangeLog.txt 1970-01-01 00:00:00 +0000
+++ report_hotel_restaurant/Doc/ChangeLog.txt 2014-04-18 16:01:07 +0000
@@ -0,0 +1,11 @@
+============================================================================================================================
+ Version Change Log (report_hotel_restaurant)
+============================================================================================================================
+0.04 on 2014-04-04 by Dhwani
+ * Standardized the module as per v7 standards.
+
+0.03 on 2014-01-07 by Krunal Soni
+ * Added Accurate licensing terms and Copyright(C) on top inside license info in each py file.
+
+0.02 on 2013-11-13 by Sudhir Arya
+ * Standardized the module as per v7 standards.
\ No newline at end of file
=== modified file 'report_hotel_restaurant/__init__.py'
--- report_hotel_restaurant/__init__.py 2012-05-18 07:39:13 +0000
+++ report_hotel_restaurant/__init__.py 2014-04-18 16:01:07 +0000
@@ -2,8 +2,8 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
-# $Id$
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,11 +16,10 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-import report_hotel_restaurant
-
+from . import report_hotel_restaurant
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'report_hotel_restaurant/__openerp__.py'
--- report_hotel_restaurant/__openerp__.py 2012-05-22 14:06:57 +0000
+++ report_hotel_restaurant/__openerp__.py 2014-04-18 16:01:07 +0000
@@ -1,9 +1,9 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
-# $Id$
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,28 +16,28 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
{
"name" : "Restaurant Management - Reporting",
- "version" : "1.0",
- "author" : "Tiny",
- "depends" : ["hotel_restaurant"],
+ "version" : "0.04",
+ "author": ["Serpent Consulting Services Pvt. Ltd.", "OpenERP SA" ],
+ "website": ["http://www.serpentcs.com", "http://www.openerp.com"],
+ "depends" : ["hotel_restaurant", "report_hotel_reservation"],
"category" : "Generic Modules/Hotel Restaurant",
"description": """
- Module shows the status of resturant reservation
+ Module shows the status of restaurant reservation
* Current status of reserved tables
* List status of tables as draft or done state
""",
-
- "init_xml" : [],
- "demo_xml" : [],
- "update_xml" : ["security/ir.model.access.csv","report_hotel_restaurant_view.xml"],
- "active": False,
- "installable": True
+ "data": [
+ "security/ir.model.access.csv",
+ "report_hotel_restaurant_view.xml",
+ ],
+ 'installable': True,
+ 'auto_install': False,
}
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'report_hotel_restaurant/i18n/es.po' (properties changed: -x to +x)
=== modified file 'report_hotel_restaurant/i18n/sv.po' (properties changed: -x to +x)
=== modified file 'report_hotel_restaurant/report_hotel_restaurant.py'
--- report_hotel_restaurant/report_hotel_restaurant.py 2012-05-18 07:39:13 +0000
+++ report_hotel_restaurant/report_hotel_restaurant.py 2014-04-18 16:01:07 +0000
@@ -2,8 +2,8 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
-# $Id$
+# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>)
+# Copyright (C) 2004 OpenERP SA (<http://www.openerp.com>)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,30 +16,28 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <http://www.gnu.org/licenses/>
#
##############################################################################
-from osv import fields,osv
+from openerp.osv import fields, osv
AVAILABLE_STATES = [
- ('draft','Draft'),
- ('confirm','Confirm'),
+ ('draft', 'Draft'),
+ ('confirm', 'Confirm'),
('done', 'Done')
-
]
-class report_hotel_restaurant_status(osv.osv):
+class report_hotel_restaurant_status(osv.Model):
_name = "report.hotel.restaurant.status"
_description = "Reservation By State"
_auto = False
_columns = {
-
- 'reservation_id':fields.char('Reservation No',size=64,readonly=True),
+ 'reservation_id': fields.char('Reservation No', size=64, readonly=True),
'nbr': fields.integer('Reservation', readonly=True),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
}
-
+
def init(self, cr):
cr.execute("""
create or replace view report_hotel_restaurant_status as (
@@ -52,7 +50,5 @@
hotel_restaurant_reservation c
group by c.state,c.reservation_id
)""")
-report_hotel_restaurant_status()
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== modified file 'report_hotel_restaurant/report_hotel_restaurant_view.xml'
--- report_hotel_restaurant/report_hotel_restaurant_view.xml 2012-05-22 14:06:57 +0000
+++ report_hotel_restaurant/report_hotel_restaurant_view.xml 2014-04-18 16:01:07 +0000
@@ -1,81 +1,72 @@
<?xml version="1.0"?>
<openerp>
-<data>
-
- <!--
- State By restaurant
- -->
-
- <record model="ir.ui.view" id="view_hotel_restaurant_status_tree">
- <field name="name">report.hotel.restaurant.status.tree</field>
- <field name="model">report.hotel.restaurant.status</field>
- <field name="type">tree</field>
- <field name="arch" type="xml">
- <tree string="States By restaurant">
- <field name="reservation_id"/>
- <field name="state"/>
- </tree>
- </field>
- </record>
- <record model="ir.ui.view" id="view_hotel_restaurant_status_form">
- <field name="name">report.hotel.restaurant.status.form</field>
- <field name="model">report.hotel.restaurant.status</field>
- <field name="type">form</field>
- <field name="arch" type="xml">
- <form string="States By restaurant">
- <field name="reservation_id"/>
- <field name="state"/>
- </form>
- </field>
- </record>
-
- <record model="ir.ui.view" id="view_hotel_restaurant_status_graph">
- <field name="name">report.hotel.restaurant.status.graph</field>
- <field name="model">report.hotel.restaurant.status</field>
- <field name="type">graph</field>
- <field name="arch" type="xml">
- <graph string="States By restaurant" type="pie">
- <field name="state"/>
- <field name="nbr" operator="+"/>
-
- </graph>
- </field>
- </record>
-
- <record model="ir.ui.view" id="view_hotel_restaurant_status_graph_bar">
- <field name="name">report.hotel.restaurant.status.graph</field>
- <field name="model">report.hotel.restaurant.status</field>
- <field name="type">graph</field>
- <field name="arch" type="xml">
- <graph string="States By restaurant" type="bar" orientation="verticle">
- <field name="state"/>
- <field name="nbr" operator="+"/>
-
- </graph>
- </field>
- </record>
-
- <record model="ir.actions.act_window" id="action_report_hotel_restaurant_status_tree_graph">
- <field name="name">States By Restaurant</field>
- <field name="res_model">report.hotel.restaurant.status</field>
- <field name="view_type">form</field>
- <field name="view_mode">graph,tree</field>
-
- </record>
-
- <record model="ir.actions.act_window" id="action_report_hotel_restaurant_status_tree_graph_bar">
+ <data>
+
+ <!-- State By restaurant -->
+ <record model="ir.ui.view" id="view_hotel_restaurant_status_tree">
+ <field name="name">report.hotel.restaurant.status.tree</field>
+ <field name="model">report.hotel.restaurant.status</field>
+ <field name="arch" type="xml">
+ <tree string="States By Restaurant">
+ <field name="reservation_id"/>
+ <field name="state"/>
+ </tree>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_hotel_restaurant_status_form">
+ <field name="name">report.hotel.restaurant.status.form</field>
+ <field name="model">report.hotel.restaurant.status</field>
+ <field name="arch" type="xml">
+ <form string="States By Restaurant">
+ <field name="reservation_id"/>
+ <field name="state"/>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_hotel_restaurant_status_graph">
+ <field name="name">report.hotel.restaurant.status.graph</field>
+ <field name="model">report.hotel.restaurant.status</field>
+ <field name="arch" type="xml">
+ <graph string="States By Restaurant" type="pie">
+ <field name="state"/>
+ <field name="nbr" operator="+"/>
+ </graph>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_hotel_restaurant_status_graph_bar">
+ <field name="name">report.hotel.restaurant.status.graph</field>
+ <field name="model">report.hotel.restaurant.status</field>
+ <field name="arch" type="xml">
+ <graph string="States By restaurant" type="bar" orientation="verticle">
+ <field name="state"/>
+ <field name="nbr" operator="+"/>
+ </graph>
+ </field>
+ </record>
+
+ <record model="ir.actions.act_window" id="action_report_hotel_restaurant_status_tree_graph">
<field name="name">States By Restaurant</field>
<field name="res_model">report.hotel.restaurant.status</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
- <field name = "view_id" ref="view_hotel_restaurant_status_graph_bar"/>
-
</record>
+ <record model="ir.actions.act_window" id="action_report_hotel_restaurant_status_tree_graph_bar">
+ <field name="name">States By Restaurant</field>
+ <field name="res_model">report.hotel.restaurant.status</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">graph,tree</field>
+ <field name = "view_id" ref="view_hotel_restaurant_status_graph_bar"/>
+ </record>
+
<menuitem name="States By Restaurant"
- action="action_report_hotel_restaurant_status_tree_graph_bar"
- id="menu_hotel_restaurant_status_tree_graph_bar"
- sequence="33"
- parent = "report_hotel_reservation.menu_hotel_reservation_this_month"/>
-</data>
-</openerp>
+ action="action_report_hotel_restaurant_status_tree_graph_bar"
+ id="menu_hotel_restaurant_status_tree_graph_bar"
+ sequence="33"
+ parent="report_hotel_reservation.menu_hotel_reservation_this_month"/>
+
+ </data>
+</openerp>
\ No newline at end of file
Follow ups