Odoo18-Base/addons/l10n_pe_pos/models/pos_session.py
2025-03-10 10:52:11 +07:00

56 lines
2.1 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models
class PosSession(models.Model):
_inherit = "pos.session"
def _is_pe_company(self):
return self.company_id.country_code == "PE"
def _pos_ui_models_to_load(self):
res = super()._pos_ui_models_to_load()
if self._is_pe_company():
models = ["l10n_latam.identification.type", "l10n_pe.res.city.district", "res.city"]
res += [model for model in models if model not in res]
return res
def _loader_params_res_partner(self):
vals = super()._loader_params_res_partner()
if self._is_pe_company():
vals["search_params"]["fields"] += ["city_id", "l10n_latam_identification_type_id", "l10n_pe_district"]
return vals
def _pos_data_process(self, loaded_data):
res = super()._pos_data_process(loaded_data)
if self._is_pe_company():
loaded_data["consumidor_final_anonimo_id"] = self.env.ref("l10n_pe_pos.partner_pe_cf").id
return res
def _get_pos_ui_res_city(self, params):
return self.env["res.city"].search_read(**params["search_params"])
def _loader_params_res_city(self):
return {"search_params": {"domain": [], "fields": ["name", "country_id", "state_id"]}}
def _get_pos_ui_l10n_pe_res_city_district(self, params):
return self.env["l10n_pe.res.city.district"].search_read(**params["search_params"])
def _loader_params_l10n_pe_res_city_district(self):
return {"search_params": {"domain": [], "fields": ["name", "city_id", "country_id", "state_id"]}}
def _get_pos_ui_l10n_latam_identification_type(self, params):
return self.env["l10n_latam.identification.type"].search_read(**params["search_params"])
def _loader_params_l10n_latam_identification_type(self):
"""filter only identification types used in Peru"""
return {
"search_params": {
"domain": [
("l10n_pe_vat_code", "!=", False),
("active", "=", True),
],
"fields": ["name"],
},
}