TIP: You can type at any time to perform a new search.

Security findings

Repository
odoo/odoo · module folder
Module version
0.1.0
Category
Sales/Sales
Folder size
1.45 MB
License
LGPL-3
Application
No
Auto-installable
Yes
Website
None
Last tracking update
2026-10-03 21:22:49
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Xavier Morel, Raphael Collet, Thibault Delavallée, odoo, Odoo Translation Bot, Christophe Matthieu, Xavier-Do, Victor Feyens, Tiffany Chang (tic), Gorash, william-andre, Antoine Vandevenne (anv), alsh-odoo, Pedram (PEBR), Victor Piryns (pivi), amdi-odoo, Levi Siuzdak (sile), Dylan Kiss (dyki), Antoine Boonen, Chong Wang (cwg), Xavier Bol (xbo), Sarah Bellefroid, Arnaud Sibille, Louis (loti), kcv-odoo, Harsh Shah, Patricia Daloze (pda), Xavier Luyckx (xlu), Ryan Cen, dija-odoo, David Van Droogenbroeck (DROD), Pierre Lamotte (pila), Michaël Mattiello, Carmine, Mahdi Alijani (malj), anko-odoo, krip-odoo, Guillaume V, bhna-odoo, Julien Launois (jula), Nisarg (nipl), Lionel Piraux (lipi), jand-odoo, Merlin Guillaume, Farah (ahmfa), kame-odoo, Khaj-odoo, Krishna Patel, Kirra Hyde, nutav, Julien Piron, Jean Schoenlaub, Corentin Deruyck, Ahmed Hamila, Cezar Bulancea (cebul)
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
sale_loyalty_delivery, website_sale_loyalty
Description
Integrate discount and loyalty programs mechanisms in sales orders.

Code Analysis info_outline

Views touched (11)
XML IDNameModelTypeStatus
loyalty_card_view_form_inherit_sale_loyalty loyalty.card.view.form.inherit.sale.loyalty loyalty.card form Inherits loyalty.loyalty_card_view_form
loyalty_program_view_form_inherit_sale_loyalty loyalty.program.view.form.inherit.sale.loyalty loyalty.program form Inherits loyalty.loyalty_program_view_form
res_partner_form res.partner.view.buttons res.partner form Inherits loyalty.res_partner_form
sale_loyalty.sale_order_portal_template Loyalty Points ir.ui.view qweb Inherits sale.sale_order_portal_template
sale_loyalty_coupon_wizard_view_form sale.loyalty.coupon.wizard.view.form sale.loyalty.coupon.wizard form New
sale_loyalty_reward_wizard_view_form sale.loyalty.reward.wizard.view.form sale.loyalty.reward.wizard form New
sale_order_portal_content_inherit Gift Card Products Portal ir.ui.view qweb Inherits sale.sale_order_portal_content
sale_order_portal_loyalty_content sale_order_portal_loyalty_content ir.ui.view qweb New
sale_order_view_form_inherit_sale_loyalty sale.order.view.form.inherit.sale.loyalty sale.order form Inherits sale.view_order_form
sale_purchased_gift_card sale_purchased_gift_card ir.ui.view qweb New
used_gift_card used_gift_card ir.ui.view qweb New
HTTP endpoints (1)
Route(s)HandlerAuthTypeMethodsFlags
/gift_card/send GiftCard.send_gift_card public jsonrpc ALL sudo
Models touched (10)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • order_id Many2one → sale.order
    comodel_name='sale.order' help='The sales order from which coupon is generated' index='btree_not_null' readonly=True string='Order Reference'
  • order_id_partner_id Many2one → res.partner
    comodel_name='res.partner' related='order_id.partner_id' string='Sale Order Customer'
Public methods (1)
  • action_archive(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • order_count Integer
    compute='_compute_order_count'
  • sale_ok Boolean
    default=True string='Sales'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • unlink(self)

New fields (2)
  • coupon_code Char
    required=True
  • order_id Many2one → sale.order
    default=<expr> required=True args: 'sale.order'
Public methods (1)
  • action_apply(self)

New fields (6)
  • multi_product_reward Boolean
    related='selected_reward_id.multi_product'
  • order_id Many2one → sale.order
    default=<expr> required=True args: 'sale.order'
  • reward_ids Many2many → loyalty.reward
    compute='_compute_claimable_reward_ids' args: 'loyalty.reward'
  • reward_product_ids Many2many
    related='selected_reward_id.reward_product_ids'
  • selected_product_id Many2one → product.product
    compute='_compute_selected_product_id' domain="[('id', 'in', reward_product_ids)]" readonly=False store=True args: 'product.product'
  • selected_reward_id Many2one → loyalty.reward
    domain="[('id', 'in', reward_ids)]" args: 'loyalty.reward'
Public methods (2)
  • action_apply(self)
  • action_cancel(self)

New fields (5)
  • applied_coupon_ids Many2many → loyalty.card
    comodel_name='loyalty.card' copy=False string='Manually Applied Coupons'
  • code_enabled_rule_ids Many2many → loyalty.rule
    comodel_name='loyalty.rule' copy=False string='Manually Triggered Rules'
  • coupon_point_ids One2many → sale.order.coupon.points
    comodel_name='sale.order.coupon.points' copy=False inverse_name='order_id'
  • gift_card_count Integer
    compute='_compute_gift_card_count'
  • reward_amount Float
    compute='_compute_reward_total'
Public methods (4)
  • action_confirm(self)
    Override to validate and update coupon rewards. If called with one SO, checks if there exists rewards that are available but not claimed, and if so returns a notification action. :raises ValidationError: A coupon gave a negative amount of points. :return: True or a notification action :rtype: bool | dict
  • action_open_reward_wizard(self)
  • action_view_gift_cards(self)
  • copy(self, default=None)

New fields (3)
  • coupon_id Many2one → loyalty.card
    comodel_name='loyalty.card' ondelete='cascade' required=True
  • order_id Many2one → sale.order
    comodel_name='sale.order' index=True ondelete='cascade' required=True
  • points Float
    required=True
Public methods (0)

No public methods.

New fields (5)
  • coupon_id Many2one → loyalty.card
    comodel_name='loyalty.card' ondelete='restrict' readonly=True
  • is_reward_line Boolean
    compute='_compute_is_reward_line' string='Is a program reward line'
  • points_cost Float
    help='How much point this reward costs on the loyalty card.'
  • reward_id Many2one → loyalty.reward
    comodel_name='loyalty.reward' ondelete='restrict' readonly=True
  • reward_identifier_code Char
    help='Technical field used to link multiple reward lines from the same reward together.'
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • unlink(self)
  • write(self, vals)

Loading…

Loading…

Loading…

Loading…