mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
53 lines
2.0 KiB
Python
53 lines
2.0 KiB
Python
# Copyright 2017 Alexandre Díaz
|
|
# Copyright 2017 Dario Lodeiros
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
from odoo import api, fields, models
|
|
from odoo.osv.expression import get_unaccent_wrapper
|
|
from odoo.exceptions import ValidationError
|
|
import logging
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class ResPartner(models.Model):
|
|
_inherit = 'res.partner'
|
|
|
|
def _compute_reservations_count(self):
|
|
hotel_reservation_obj = self.env['hotel.reservation']
|
|
for record in self:
|
|
record.reservations_count = hotel_reservation_obj.search_count([
|
|
('partner_id.id', '=', record.id)
|
|
])
|
|
|
|
def _compute_folios_count(self):
|
|
hotel_folio_obj = self.env['hotel.folio']
|
|
for record in self:
|
|
record.folios_count = hotel_folio_obj.search_count([
|
|
('partner_id.id', '=', record.id)
|
|
])
|
|
|
|
reservations_count = fields.Integer('Reservations',
|
|
compute='_compute_reservations_count')
|
|
folios_count = fields.Integer('Folios', compute='_compute_folios_count')
|
|
unconfirmed = fields.Boolean('Unconfirmed', default=True)
|
|
main_partner_id = fields.Many2one('res.partner', string='Destination Partner fusion')
|
|
is_tour_operator = fields.Boolean('Is Tour Operator')
|
|
|
|
@api.model
|
|
def name_search(self, name, args=None, operator='ilike', limit=100):
|
|
if not args:
|
|
args = []
|
|
domain = ['|', '|', ('phone', operator, name),
|
|
('mobile', operator, name), ('email', operator, name),
|
|
]
|
|
partners = self.search(domain + args, limit=limit,)
|
|
res = partners.name_get()
|
|
if limit:
|
|
limit_rest = limit - len(partners)
|
|
else:
|
|
limit_rest = limit
|
|
if limit_rest or not limit:
|
|
args += [('id', 'not in', partners.ids)]
|
|
res += super(ResPartner, self).name_search(
|
|
name, args=args, operator=operator, limit=limit_rest)
|
|
return res
|