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

Security findings

Repository
OCA/stock-logistics-orderpoint · module folder · Try on Runboat
Module version
Category
Uncategorized
Folder size
0.25 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/stock-logistics-orderpoint
Last tracking update
2026-09-10 17:17:31
Authors
ACSONE SA/NV, Odoo Community Association (OCA), BCIM, MT Software
Maintainers
ACSONE SA/NV, Odoo Community Association (OCA), BCIM, MT Software
Committers
Jacques-Etienne Baudoux, Laurent Mignon (ACSONE), Thierry Ducrest, Weblate, OCA-git-bot, oca-ci, Mmequignon, David Gallay
Odoo dependencies
Python dependencies
requests
System dependencies
None
Required by
None
Description
Declare orderpoint on a location allowing to replenish any product with
the same criteria. This is for an internal warehouse replenishment
currently not compatible with the purchase buy route.

Code Analysis info_outline

Views touched (4)
XML IDNameModelTypeStatus
stock_location_orderpoint_form stock.location.orderpoint.form stock.location.orderpoint form New
stock_location_orderpoint_search stock.location.orderpoint.search stock.location.orderpoint search New
view_location_form stock.location.form (in stock_location_orderpoint) stock.location form Inherits stock.view_location_form
view_stock_location_orderpoint_list_editable stock.location.orderpoint.list.editable stock.location.orderpoint list New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (7)

New fields (2)
  • location_orderpoint_count Integer
    compute='_compute_location_orderpoint_count'
  • location_orderpoint_ids One2many → stock.location.orderpoint
    comodel_name='stock.location.orderpoint' help='Location Orderpoints. Rules that allows this location to be replenished.' inverse_name='location_id' string='Location Orderpoints'
Public methods (4)
  • action_open_location_orderpoints(self)
  • create(self, vals_list)
    @api.model_create_multi
  • unlink(self)
  • write(self, vals)

New fields (16)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company', 'Company'
  • group_id Many2one → procurement.group
    copy=False help='Moves created through this orderpoint will be put in this procurement group. If none is given, the moves generated by stock rules will be grouped into one big picking.' args: 'procurement.group', 'Procurement Group'
  • last_cron_execution Datetime
    help='Last time this orderpoint was processed by the cron'
  • location_id Many2one → stock.location
    check_company=True ondelete='cascade' required=True args: 'stock.location', 'Location'
  • location_src_id Many2one → stock.location
    compute='_compute_location_src_id' store=True args: 'stock.location'
  • name Char
    copy=False default='/' help="Set to '/' and save if you want a default name to be proposed." readonly=False required=True
  • priority Selection
    default='0' selection='_selection_move_priorities'
  • proc_run_async Boolean
    compute='_compute_proc_run_async' help="If enabled, procurements will be run asynchronously in delayed jobs when processing this orderpoint. Only applies to 'cron' and 'manual' triggers. If disabled, all procurements will be run in the same transaction. " precompute=True readonly=False store=True string='Delay procurement execution'
  • product_domain_char Char
    default='[]' help='Additional domain to filter products for this orderpoint. ' string='Product domain'
  • replenish_horizon Float
    default=7 help='Time horizon to consider for the replenishment. Limits the demand considered to what is expected in the horizon. ' required=True string='Replenishment horizon (in days)'
  • replenish_limit_to_free_qty Boolean
    default=True help='If enabled, the replenishment quantity will be limited to the free quantity at the source location. ' string='Limit replenishment to free quantity at source location'
  • replenish_method Selection
    default='fill_up' help='Defines how the qty to replenish gets computed\nFill up = The replenishment will be triggered when a move is waiting availability and forecast quantity is negative at the location (i.e. min=0). The replenished quantity will bring back the forecast quantity to 0 (i.e. max=0) but will be limited to what is available at the source location to plan only reservable replenishment moves' required=True args: [('fill_up', 'Fill up')]
  • route_id Many2one → stock.route
    domain="[('rule_ids.location_dest_id', 'in', [location_id])]" string='Preferred Route' args: 'stock.route'
  • sequence Integer
    default=10
  • trigger Selection
    default='auto' help="Auto/realtime orderpoints are triggered on new moves\nManual orderpoints are triggered via the orderpoints' view\nScheduled orderpoints are triggered via scheduled actions per location" required=True args: [('auto', 'Auto/realtime'), ('manual', 'Manual'), ('cron', 'Scheduled')]
Public methods (7)
  • create(self, vals_list)
    @api.model_create_multi
  • location(self)
    @property
    Return location_id with the excluded_location_domain in context.
  • location_src(self)
    @property
    Return location_src_id with the excluded_location_domain in context.
  • run_cron_replenishment(self, location_ids=None)
    @api.model
  • run_replenishment(self, products=None, job_logs=None)
    Public entry point to execute the replenishment rule. :param products: optional recordset of product.product If provided, limits the computation scope. :param job_logs: optional list to collect trace messages. When provided, messages are appended for each step of the pipeline. Used by delayed jobs to build their result string.
  • unlink(self)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • excluded_location_domain Json
    default=False help='Optional domain to exclude some locations from availability computation. '
  • horizon Datetime
    help='Time horizon to consider for the replenishment. Only moves with a date_deadline up to this datetime will be considered in the demand computation.' required=True string='Horizon Datetime'
  • location_id Many2one → stock.location
    required=True string='Destination Location' args: 'stock.location'
  • location_src_id Many2one → stock.location
    required=True string='Source Location' args: 'stock.location'
  • product_domain Binary
    default=[] help='Optional domain to filter products'
  • replenish_limit_to_free_qty Boolean
    default=True
Public methods (3)
  • compute(self, products=None, demand_only=False, job_logs=None)
    Compute replenishment quantities for the given products. :param products: optional product.product recordset to scope the computation. If None, the strategy determines the candidates. :param demand_only: if True, stop after demand computation and return {product_id: demand_qty} without the availability cap. Used by the async path in _run_replenishment so that one job per product can be enqueued after a single demand pass, with no double calculation. :param job_logs: optional list to collect trace messages. :return: dict {product_id: demand_qty} if demand_only=True dict {product_id: qty_to_procure} if demand_only=False
  • location(self)
    @property
    Return location_id with the excluded_location_domain in context.
  • location_src(self)
    @property
    Return location_src_id with the excluded_location_domain in context.

New fields (1)
  • location_orderpoint_id Many2one → stock.location.orderpoint
    index=True args: 'stock.location.orderpoint', 'Stock location orderpoint'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi@api.returns('self', <expr>)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (0)

No public methods.

Loading…

Loading…