Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions acysos_hlc_partner/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
===========
HLC Partner
===========

This module adds HLC partner segmentation fields and reporting support.

Features
========

* Adds partner segments.
* Adds a segment field on contacts.
* Adds segment grouping on contact searches.
* Adds segment and current salesperson fields to the invoice report.

Credits
=======

Authors
-------

* Acysos S.L.
* AvanzOSC

Contributors
------------

* Leonidas Pezo <leonidas@acysos.com>
21 changes: 21 additions & 0 deletions acysos_hlc_partner/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
##############################################################################
#
# @authors: Leonidas Pezo <leonidas@acysos.com>
# Copyright (C) 2018 Acysos S.L.
#
# 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.
#
# 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 . import models
from . import reports
37 changes: 37 additions & 0 deletions acysos_hlc_partner/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
##############################################################################
#
# @authors: Leonidas Pezo <leonidas@acysos.com>
# Copyright (C) 2019 Acysos S.L.
#
# 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.
#
# 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/>.
#
##############################################################################
{
"name": "HLC Partner",
"version": "18.0.1.0.0",
"author": "Acysos S.L., AvanzOSC",
"website": "https://github.com/avanzosc/custom-addons",
"contributors": ["Leonidas Pezo <leonidas@acysos.com>"],
"category": "",
"license": "AGPL-3",
"depends": [
"account",
"contacts",
],
"data": [
"security/ir.model.access.csv",
"views/partner_views.xml",
],
"installable": True,
}
87 changes: 87 additions & 0 deletions acysos_hlc_partner/i18n/acysos_hlc_partner.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * acysos_hlc_partner
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-23 00:00+0000\n"
"PO-Revision-Date: 2026-07-23 00:00+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: acysos_hlc_partner
#: model:ir.model,name:acysos_hlc_partner.model_res_partner
msgid "Contact"
msgstr ""

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_partner_segment__create_uid
msgid "Created by"
msgstr ""

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_partner_segment__create_date
msgid "Created on"
msgstr ""

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_account_invoice_report__current_user_id
msgid "Current Salesperson"
msgstr ""

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_partner_segment__display_name
msgid "Display Name"
msgstr ""

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_res_partner__ext_id
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_res_users__ext_id
msgid "External id"
msgstr ""

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_partner_segment__id
msgid "ID"
msgstr ""

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_partner_segment__write_uid
msgid "Last Updated by"
msgstr ""

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_partner_segment__write_date
msgid "Last Updated on"
msgstr ""

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_partner_segment__name
msgid "Name"
msgstr ""

#. module: acysos_hlc_partner
#: model:ir.model,name:acysos_hlc_partner.model_partner_segment
#: model_terms:ir.ui.view,arch_db:acysos_hlc_partner.partner_segment_view_form
msgid "Partner Segment"
msgstr ""

#. module: acysos_hlc_partner
#: model:ir.actions.act_window,name:acysos_hlc_partner.partner_segment_action
#: model:ir.ui.menu,name:acysos_hlc_partner.partner_segment_menu_act
msgid "Partner Segments"
msgstr ""

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_account_invoice_report__hlc_segment_id
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_res_partner__hlc_segment_id
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_res_users__hlc_segment_id
#: model_terms:ir.ui.view,arch_db:acysos_hlc_partner.res_partner_view_search
msgid "Segment"
msgstr ""
88 changes: 88 additions & 0 deletions acysos_hlc_partner/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * acysos_hlc_partner
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-23 00:00+0000\n"
"PO-Revision-Date: 2026-07-23 00:00+0000\n"
"Last-Translator: AvanzOSC\n"
"Language-Team: Spanish\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. module: acysos_hlc_partner
#: model:ir.model,name:acysos_hlc_partner.model_res_partner
msgid "Contact"
msgstr "Contacto"

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_partner_segment__create_uid
msgid "Created by"
msgstr "Creado por"

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_partner_segment__create_date
msgid "Created on"
msgstr "Creado el"

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_account_invoice_report__current_user_id
msgid "Current Salesperson"
msgstr "Comercial actual"

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_partner_segment__display_name
msgid "Display Name"
msgstr "Nombre mostrado"

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_res_partner__ext_id
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_res_users__ext_id
msgid "External id"
msgstr "ID externo"

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_partner_segment__id
msgid "ID"
msgstr "ID"

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_partner_segment__write_uid
msgid "Last Updated by"
msgstr "Última actualización por"

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_partner_segment__write_date
msgid "Last Updated on"
msgstr "Última actualización el"

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_partner_segment__name
msgid "Name"
msgstr "Nombre"

#. module: acysos_hlc_partner
#: model:ir.model,name:acysos_hlc_partner.model_partner_segment
#: model_terms:ir.ui.view,arch_db:acysos_hlc_partner.partner_segment_view_form
msgid "Partner Segment"
msgstr "Segmento de cliente"

#. module: acysos_hlc_partner
#: model:ir.actions.act_window,name:acysos_hlc_partner.partner_segment_action
#: model:ir.ui.menu,name:acysos_hlc_partner.partner_segment_menu_act
msgid "Partner Segments"
msgstr "Segmentos de clientes"

#. module: acysos_hlc_partner
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_account_invoice_report__hlc_segment_id
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_res_partner__hlc_segment_id
#: model:ir.model.fields,field_description:acysos_hlc_partner.field_res_users__hlc_segment_id
#: model_terms:ir.ui.view,arch_db:acysos_hlc_partner.res_partner_view_search
msgid "Segment"
msgstr "Segmento"
1 change: 1 addition & 0 deletions acysos_hlc_partner/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import res_partner
20 changes: 20 additions & 0 deletions acysos_hlc_partner/models/res_partner.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)

from odoo import fields, models


class PartnerSegment(models.Model):
_name = "partner.segment"
_description = "Partner Segment"

name = fields.Char(required=True)


class ResPartner(models.Model):
_inherit = "res.partner"

ext_id = fields.Char(string="External id")
hlc_segment_id = fields.Many2one(
comodel_name="partner.segment",
string="Segment",
)
3 changes: 3 additions & 0 deletions acysos_hlc_partner/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
1 change: 1 addition & 0 deletions acysos_hlc_partner/reports/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import account_invoice_report
36 changes: 36 additions & 0 deletions acysos_hlc_partner/reports/account_invoice_report.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Copyright 2022 Oihane Crucelaegui - AvanzOSC
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).

from odoo import api, fields, models
from odoo.tools import SQL


class AccountInvoiceReport(models.Model):
_inherit = "account.invoice.report"

current_user_id = fields.Many2one(
comodel_name="res.users",
string="Current Salesperson",
readonly=True,
)
hlc_segment_id = fields.Many2one(
comodel_name="partner.segment",
string="Segment",
readonly=True,
)

@api.model
def _select(self) -> SQL:
return SQL(
"%s, move_partner.user_id AS current_user_id, "
"move_partner.hlc_segment_id AS hlc_segment_id",
super()._select(),
)

@api.model
def _from(self) -> SQL:
return SQL(
"%s LEFT JOIN res_partner move_partner "
"ON move_partner.id = move.partner_id",
super()._from(),
)
2 changes: 2 additions & 0 deletions acysos_hlc_partner/security/ir.model.access.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_partner_segment_user,partner.segment.user,model_partner_segment,base.group_user,1,1,1,1
Loading
Loading