Ecocentral/ecocentral#172: migrate purchase_rappel to 18.0
This commit is contained in:
parent
1d6747e703
commit
a754df3914
24 changed files with 1588 additions and 0 deletions
6
purchase_rappel/models/__init__.py
Normal file
6
purchase_rappel/models/__init__.py
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
# Copyright 2024 Criptomart
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
from . import res_company
|
||||
from . import res_partner
|
||||
from . import res_config_settings
|
||||
from . import account_move
|
||||
32
purchase_rappel/models/account_move.py
Normal file
32
purchase_rappel/models/account_move.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# Copyright 2024 Criptomart
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
from odoo import api, fields, models
|
||||
|
||||
|
||||
class AccountMove(models.Model):
|
||||
_inherit = "account.move"
|
||||
|
||||
rappel_pending = fields.Boolean(
|
||||
string="Pending Commission",
|
||||
copy=False,
|
||||
help="Indicates that this vendor bill has not yet been included in a rappel "
|
||||
"commission invoice. Automatically set based on the vendor's configuration.",
|
||||
)
|
||||
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
moves = super().create(vals_list)
|
||||
for move in moves:
|
||||
if (
|
||||
move.move_type in ("in_invoice", "in_refund")
|
||||
and move.partner_id.rappel_commission
|
||||
):
|
||||
move.rappel_pending = True
|
||||
return moves
|
||||
|
||||
@api.onchange("partner_id")
|
||||
def _onchange_partner_id_rappel(self):
|
||||
if self.move_type in ("in_invoice", "in_refund"):
|
||||
self.rappel_pending = bool(
|
||||
self.partner_id and self.partner_id.rappel_commission
|
||||
)
|
||||
19
purchase_rappel/models/res_company.py
Normal file
19
purchase_rappel/models/res_company.py
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# Copyright 2024 Criptomart
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResCompany(models.Model):
|
||||
_inherit = "res.company"
|
||||
|
||||
rappel_journal_id = fields.Many2one(
|
||||
comodel_name="account.journal",
|
||||
string="Rappel Journal",
|
||||
domain="[('type', '=', 'sale'), ('company_id', '=', id)]",
|
||||
help="Sales journal used to post rappel commission invoices.",
|
||||
)
|
||||
rappel_product_id = fields.Many2one(
|
||||
comodel_name="product.product",
|
||||
string="Commission Product",
|
||||
help="Product used as invoice line in rappel commission invoices.",
|
||||
)
|
||||
23
purchase_rappel/models/res_config_settings.py
Normal file
23
purchase_rappel/models/res_config_settings.py
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# Copyright 2024 Criptomart
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
from odoo import api, fields, models
|
||||
|
||||
|
||||
class ResConfigSettings(models.TransientModel):
|
||||
_inherit = "res.config.settings"
|
||||
|
||||
rappel_journal_id = fields.Many2one(
|
||||
comodel_name="account.journal",
|
||||
string="Rappel Journal",
|
||||
related="company_id.rappel_journal_id",
|
||||
domain=[("type", "=", "sale")],
|
||||
readonly=False,
|
||||
help="Sales journal used to post rappel commission invoices.",
|
||||
)
|
||||
rappel_product_id = fields.Many2one(
|
||||
comodel_name="product.product",
|
||||
string="Commission Product",
|
||||
related="company_id.rappel_product_id",
|
||||
readonly=False,
|
||||
help="Product used as invoice line in rappel commission invoices.",
|
||||
)
|
||||
19
purchase_rappel/models/res_partner.py
Normal file
19
purchase_rappel/models/res_partner.py
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# Copyright 2024 Criptomart
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResPartner(models.Model):
|
||||
_inherit = "res.partner"
|
||||
|
||||
rappel_commission = fields.Boolean(
|
||||
string="Rappel Commission",
|
||||
help="If enabled, vendor bills from this partner will be eligible for rappel "
|
||||
"commission invoicing.",
|
||||
)
|
||||
rappel_commission_rate = fields.Float(
|
||||
string="Commission Rate (%)",
|
||||
digits=(5, 4),
|
||||
help="Percentage applied on the taxable base of vendor bills to calculate the "
|
||||
"rappel commission amount.",
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue