Files
pms/hotel/models/inherited_res_partner.py
2019-04-08 23:08:18 +02:00

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