| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/15.0/sale_missing_tracking |
| VERSION | |
| VERSION | 1.0.2 |
| CATEGORY | |
| CATEGORY | Sales |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Weblate, OCA-git-bot, oca-ci, pilarvargas-tecnativa |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:34 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - payment - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_template_sale_form_view |
product.template | xpath | Inherits product.product_template_form_view | |
res_config_settings_view_form_sale |
res.config.settings | xpath | Inherits sale.res_config_settings_view_form | |
sale_missing_tracking_wiz |
Sale missing cart tracking wizard | sale.missing.tracking.wiz | form | New |
view_order_form |
sale.order | xpath | Inherits sale.view_order_form | |
view_partner_form |
res.partner | group | Inherits base.view_partner_form | |
view_sale_missing_tracking_exception_form |
sale.missing.tracking.exception.form | sale.missing.tracking.exception | form | New |
view_sale_missing_tracking_exception_search |
sale.missing.tracking.exception.search | sale.missing.tracking.exception | search | New |
view_sale_missing_tracking_exception_tree |
sale.missing.tracking.exception.tree | sale.missing.tracking.exception | tree | New |
view_sale_missing_tracking_form |
sale.missing.tracking.form | sale.missing.tracking | form | New |
view_sale_missing_tracking_kanban |
sale.missing.tracking.kanban | sale.missing.tracking | kanban | New |
view_sale_missing_tracking_pivot |
sale.missing.tracking.pivot | sale.missing.tracking | pivot | New |
view_sale_missing_tracking_reason_search |
sale.missing.tracking.reason.search | sale.missing.tracking.reason | search | New |
view_sale_missing_tracking_reason_tree |
sale.missing.tracking.reason.tree | sale.missing.tracking.reason | tree | New |
view_sale_missing_tracking_search |
sale.missing.tracking.search | sale.missing.tracking | search | New |
view_sale_missing_tracking_tree |
sale.missing.tracking.tree | sale.missing.tracking | tree | New |
sale_missing_tracking
Boolean
No public methods.
sale_missing_days_from
Integer
default=45
help='Number of days before to today to take into account the beginning of the period to obtain sold products'
string='Days from'
sale_missing_days_notification
Integer
default=30
help='Number of days from the first advice to create a notification'
string='Days notification'
sale_missing_days_to
Integer
default=15
help='Number of days before to today to take into account the ending of the period to obtain sold products'
string='Days to'
sale_missing_max_delay_times
Integer
default=1
help='Number of times that a salesperson can postpone the response to the follow-up'
string='Max delay times'
sale_missing_minimal_consumption
Monetary
default=1000.0
help='Minimal consumption in months consumption'
string='Minimal consumption'
sale_missing_months_consumption
Integer
default=12
help='Number of months to compute product consumption'
string='Months consumption'
No public methods.
sale_missing_days_from
Integer
readonly=False
related='company_id.sale_missing_days_from'
sale_missing_days_notification
Integer
readonly=False
related='company_id.sale_missing_days_notification'
sale_missing_days_to
Integer
readonly=False
related='company_id.sale_missing_days_to'
sale_missing_max_delay_times
Integer
readonly=False
related='company_id.sale_missing_max_delay_times'
sale_missing_minimal_consumption
Monetary
readonly=False
related='company_id.sale_missing_minimal_consumption'
sale_missing_months_consumption
Integer
readonly=False
related='company_id.sale_missing_months_consumption'
No public methods.
sale_missing_tracking
Boolean
No public methods.
active
Boolean
default=True
commercial_partner_id
Many2one → res.partner
comodel_name='res.partner'
related='order_id.partner_id.commercial_partner_id'
store=True
company_id
Many2one → res.company
comodel_name='res.company'
related='order_id.company_id'
store=True
consumption
Monetary
currency_id
Many2one → res.currency
comodel_name='res.currency'
related='order_id.currency_id'
store=True
date_order
Datetime
index=True
related='order_id.date_order'
store=True
last_sale_line_id
Many2one → sale.order.line
comodel_name='sale.order.line'
order_id
Many2one → sale.order
comodel_name='sale.order'
ondelete='cascade'
required=True
string='Sale order'
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
related='order_id.partner_id'
store=True
product_id
Many2one → product.product
comodel_name='product.product'
index=True
reason_id
Many2one → sale.missing.tracking.reason
comodel_name='sale.missing.tracking.reason'
index=True
reason_note
Text
compute='_compute_reason_note'
readonly=False
store=True
state
Selection
default='draft'
args: [('draft', 'Draft'), ('request', 'Requested'), ('approved', 'Approved'), ('refused', 'Refused'), ('recovered', 'Recovered'), ('cancel', 'Cancelled')]
team_id
Many2one → crm.team
comodel_name='crm.team'
related='order_id.team_id'
store=True
tracking_exception_ids
Many2many → sale.missing.tracking.exception
column1='tracking_id'
column2='exception_id'
comodel_name='sale.missing.tracking.exception'
relation='missing_tracking_exception_missing_tracking_rel'
string='Missing sales tracking exceptions'
user_id
Many2one → res.users
comodel_name='res.users'
related='order_id.user_id'
store=True
action_create_exception(self)
action_open_sale_order(self)
missing_tracking_notification(self)
name_get(self)
send_notification(self, team_id)
active
Boolean
default=True
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
consumption
Monetary
currency_id
Many2one
related='company_id.currency_id'
date
Datetime
missing_tracking_ids
Many2many → sale.missing.tracking
column1='exception_id'
column2='tracking_id'
comodel_name='sale.missing.tracking'
relation='missing_tracking_exception_missing_tracking_rel'
string='Missing sales tracking'
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
product_id
Many2one → product.product
comodel_name='product.product'
required=True
reason_id
Many2one → sale.missing.tracking.reason
comodel_name='sale.missing.tracking.reason'
index=True
reason_note
Text
compute='_compute_reason_note'
readonly=False
store=True
request_date
Datetime
default=fields.Datetime.now
string='Request date'
state
Selection
default='request'
args: [('request', 'Requested'), ('approved', 'Approved'), ('refused', 'Refused'), ('recovered', 'Recovered')]
user_id
Many2one → res.users
comodel_name='res.users'
action_approve(self)
action_refuse(self)
action_request(self)
create(self, vals)
name_get(self)
write(self, vals)
name
Char
required=True
note
Text
No public methods.
has_pending_lines
Boolean
compute='_compute_has_pending_lines'
missing_tracking_ids
Many2many → sale.missing.tracking
comodel_name='sale.missing.tracking'
reason_id
Many2one → sale.missing.tracking.reason
comodel_name='sale.missing.tracking.reason'
reason_note
Text
compute='_compute_reason_note'
readonly=False
store=True
action_mass_update(self)
action_open_sale_order(self, sale_orders=None)
missing_tracking_action_confirm(self)
name_get(self)
missing_tracking_count
Integer
compute='_compute_missing_tracking_count'
action_cancel(self)
action_confirm(self)
action_open_missing_tracking(self)
action_pending_missing_tracking_reason(self)
recover_missing_tracking(self)
No new fields.
Public methods (1)create(self, vals_list)