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

Security findings

Repository
OCA/stock-logistics-request · module folder · Try on Runboat
Module version
Category
Warehouse Management
Folder size
1.5 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/stock-logistics-request
Last tracking update
2026-09-08 17:33:29
Authors
Odoo Community Association (OCA), ForgeFlow
Maintainers
Odoo Community Association (OCA), ForgeFlow
Committers
Kiril Vangelovski, LauraCForgeFlow, Weblate, OCA-git-bot, oca-ci, les-adhoc
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
stock_request_purchase
Description
This module was written to allow users to request products that are
frequently stocked by the company, to be transferred to their chosen
location.

Code Analysis info_outline

Views touched (11)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form.inherit.stock_request res.config.settings form Inherits base.res_config_settings_view_form
stock_request_order_form stock.request.order.form stock.request.order form New
stock_request_order_search stock.request.order.search stock.request.order search New
stock_request_order_tree stock.request.order.tree stock.request.order list New
stock_request_search stock.request.search stock.request search New
view_move_form stock.move.form stock.move form Inherits stock.view_move_form
view_picking_form stock.picking.form stock.picking form Inherits stock.view_picking_form
view_stock_request_allocation_form stock.request.allocation.form stock.request.allocation form New
view_stock_request_allocation_tree stock.request.allocation.tree stock.request.allocation list New
view_stock_request_form stock.request.form stock.request form New
view_stock_request_tree stock.request.tree stock.request list New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (13)

New fields (2)
  • stock_request_allow_virtual_loc Boolean
    string='Allow Virtual locations on Stock Requests'
  • stock_request_check_available_first Boolean
    string='Check available stock first'
Public methods (0)

No public methods.

New fields (8)
  • group_stock_request_order Boolean
    implied_group='stock_request.group_stock_request_order'
  • module_stock_request_analytic Boolean
    string='Stock Requests Analytic integration'
  • module_stock_request_kanban Boolean
    string='Stock Requests Kanban integration'
  • module_stock_request_mrp Boolean
    string='Stock Request for Manufacturing'
  • module_stock_request_purchase Boolean
    string='Stock Requests for Purchases'
  • module_stock_request_submit Boolean
    string='Submitted state in Stock Requests'
  • stock_request_allow_virtual_loc Boolean
    readonly=False related='company_id.stock_request_allow_virtual_loc'
  • stock_request_check_available_first Boolean
    readonly=False related='company_id.stock_request_check_available_first'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • allocation_ids One2many → stock.request.allocation
    comodel_name='stock.request.allocation' inverse_name='stock_move_id' string='Stock Request Allocation'
  • stock_request_ids One2many → stock.request
    comodel_name='stock.request' compute='_compute_stock_request_ids' string='Stock Requests'
Public methods (1)
  • copy_data(self, default=None)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • stock_request_count Integer
    compute='_compute_stock_request_ids' args: 'Stock Request #'
  • stock_request_ids One2many → stock.request
    comodel_name='stock.request' compute='_compute_stock_request_ids' string='Stock Requests'
Public methods (1)
  • action_view_stock_request(self)
    :return dict: dictionary value for created view

New fields (21)
  • allocation_ids One2many → stock.request.allocation
    comodel_name='stock.request.allocation' inverse_name='stock_request_id' string='Stock Request Allocation'
  • company_id Many2one
  • expected_date Datetime
    help='Date when you expect to receive the goods.' index=True required=True
  • location_id Many2one
  • move_ids One2many → stock.move
    comodel_name='stock.move' compute='_compute_move_ids' readonly=True string='Stock Moves'
  • name Char
  • order_id Many2one → stock.request.order
    readonly=True args: 'stock.request.order'
  • picking_count Integer
    compute='_compute_picking_ids' readonly=True string='Delivery Orders'
  • picking_ids One2many → stock.picking
    compute='_compute_picking_ids' readonly=True string='Pickings' args: 'stock.picking'
  • picking_policy Selection
    default='direct' required=True string='Shipping Policy' args: [('direct', 'Receive each product when available'), ('one', 'Receive all products at once')]
  • product_id Many2one
  • product_uom_id Many2one
  • product_uom_qty Float
  • qty_cancelled Float
    compute='_compute_qty' digits='Product Unit of Measure' help='Quantity cancelled' readonly=True store=True
  • qty_done Float
    compute='_compute_qty' digits='Product Unit of Measure' help='Quantity completed' readonly=True store=True
  • qty_in_progress Float
    compute='_compute_qty' digits='Product Unit of Measure' help='Quantity in progress.' readonly=True store=True
  • reference_ids Many2many
  • requested_by Many2one → res.users
    default=<expr> required=True tracking=True args: 'res.users'
  • route_id Many2one
  • state Selection
    copy=False default='draft' index=True readonly=True selection=[('draft', 'Draft'), ('open', 'In progress'), ('done', 'Done'), ('cancel', 'Cancelled')] string='Status' tracking=True
  • warehouse_id Many2one
Public methods (16)
  • action_cancel(self)
  • action_confirm(self)
  • action_done(self)
  • action_draft(self)
  • action_view_transfer(self)
  • check_cancel(self)
  • check_done(self)
  • check_order_company(self)
    @api.constrains('order_id', 'company_id')
  • check_order_expected_date(self)
    @api.constrains('order_id', 'expected_date')
  • check_order_location(self)
    @api.constrains('order_id', 'location_id')
  • check_order_picking_policy(self)
    @api.constrains('order_id', 'picking_policy')
  • check_order_reference_ids(self)
    @api.constrains('order_id', 'reference_ids')
  • check_order_requested_by(self)
    @api.constrains('order_id', 'requested_by')
  • check_order_warehouse_id(self)
    @api.constrains('order_id', 'warehouse_id')
  • create(self, vals_list)
    @api.model_create_multi
  • unlink(self)

New fields (13)
  • allow_virtual_location Boolean
    readonly=True related='company_id.stock_request_allow_virtual_loc'
  • allowed_uom_ids Many2many → uom.uom
    comodel_name='uom.uom' compute='_compute_allowed_uom_ids'
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company', 'Company'
  • location_id Many2one → stock.location
    comodel_name='stock.location' domain="not allow_virtual_location and [('usage', 'in', ['internal', 'transit'])] or []" ondelete='cascade' required=True string='Location'
  • name Char
    copy=False default='/' readonly=True required=True
  • product_id Many2one → product.product
    domain=[('type', 'in', ['product', 'consu'])] ondelete='cascade' required=True args: 'product.product', 'Product'
  • product_qty Float
    compute='_compute_product_qty' copy=False digits='Product Unit of Measure' help='Quantity in the default UoM of the product' store=True args: 'Real Quantity'
  • product_uom_id Many2one → uom.uom
    comodel_name='uom.uom' default=<expr> domain="[('id', 'in', allowed_uom_ids)]" required=True string='Product Unit of Measure'
  • product_uom_qty Float
    digits='Product Unit of Measure' help='Quantity, specified in the unit of measure indicated in the request.' required=True args: 'Quantity'
  • reference_ids Many2many → stock.reference
    help='Moves created through this stock request will be grouped using these references. If none are given, the moves generated by procurement rules will be grouped into one big picking.' args: 'stock.reference', 'References'
  • route_id Many2one → stock.route
    domain="[('id', 'in', route_ids)]" ondelete='restrict' string='Route' args: 'stock.route'
  • route_ids Many2many → stock.route
    compute='_compute_route_ids' readonly=True string='Routes' args: 'stock.route'
  • warehouse_id Many2one → stock.warehouse
    check_company=True comodel_name='stock.warehouse' ondelete='cascade' required=True string='Warehouse'
Public methods (6)
  • default_get(self, fields)
    @api.model
  • get_parents(self)
  • onchange_company_id(self)
    @api.onchange('company_id')
    Sets a default warehouse when the company is changed.
  • onchange_location_id(self)
    @api.onchange('location_id')
  • onchange_product_id(self)
    @api.onchange('product_id')
  • onchange_warehouse_id(self)
    @api.onchange('warehouse_id')
    Finds location id for changed warehouse.

New fields (9)
  • allocated_product_qty Float
    copy=False help='Quantity of the stock request allocated to the stock move, in the default UoM of the product' args: 'Allocated Quantity'
  • company_id Many2one → res.company
    comodel_name='res.company' readonly=True related='stock_request_id.company_id' store=True string='Company'
  • open_product_qty Float
    compute='_compute_open_product_qty' args: 'Open Quantity'
  • product_id Many2one → product.product
    comodel_name='product.product' readonly=True related='stock_request_id.product_id' string='Product'
  • product_uom_id Many2one → uom.uom
    comodel_name='uom.uom' readonly=True related='stock_request_id.product_uom_id' string='UoM'
  • requested_product_qty Float
    compute='_compute_requested_product_qty' help='Quantity of the stock request allocated to the stock move, in the default UoM of the product' args: 'Requested Quantity'
  • requested_product_uom_qty Float
    help='Quantity of the stock request allocated to the stock move, in the UoM of the Stock Request' args: 'Requested Quantity (UoM)'
  • stock_move_id Many2one → stock.move
    comodel_name='stock.move' ondelete='cascade' required=True string='Stock Move'
  • stock_request_id Many2one → stock.request
    comodel_name='stock.request' ondelete='cascade' required=True string='Stock Request'
Public methods (0)

No public methods.

New fields (17)
  • allow_virtual_location Boolean
    readonly=True related='company_id.stock_request_allow_virtual_loc'
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company', 'Company'
  • expected_date Datetime
    default=fields.Datetime.now help='Date when you expect to receive the goods.' index=True required=True
  • location_id Many2one → stock.location
    comodel_name='stock.location' domain="not allow_virtual_location and [('usage', 'in', ['internal', 'transit'])] or []" ondelete='cascade' required=True string='Location'
  • move_ids One2many → stock.move
    comodel_name='stock.move' compute='_compute_move_ids' readonly=True string='Stock Moves'
  • name Char
    copy=False default='/' readonly=True required=True
  • picking_count Integer
    compute='_compute_picking_ids' readonly=True string='Delivery Orders'
  • picking_ids One2many → stock.picking
    compute='_compute_picking_ids' readonly=True string='Pickings' args: 'stock.picking'
  • picking_policy Selection
    default='direct' required=True string='Shipping Policy' args: [('direct', 'Receive each product when available'), ('one', 'Receive all products at once')]
  • reference_ids Many2many → stock.reference
    column1='stock_request_order_id' column2='stock_reference_id' comodel_name='stock.reference' help='Moves created through this stock request will be grouped using these references. If none are given, the moves generated by procurement rules will be grouped into one big picking.' relation='stock_request_order_stock_reference_rel' string='References'
  • requested_by Many2one → res.users
    default=<expr> required=True tracking=True args: 'res.users'
  • route_id Many2one → stock.route
    compute='_compute_route_id' help='The route related to a stock request order' inverse='_inverse_route_id' readonly=True store=True args: 'stock.route'
  • route_ids Many2many → stock.route
    compute='_compute_route_ids' readonly=True store=True string='Routes' args: 'stock.route'
  • state Selection
    compute='_compute_state' copy=False default='draft' index=True readonly=True selection=_get_request_order_states store=True string='Status' tracking=True
  • stock_request_count Integer
    compute='_compute_stock_request_count' readonly=True string='Stock requests'
  • stock_request_ids One2many → stock.request
    copy=True inverse_name='order_id' args: 'stock.request'
  • warehouse_id Many2one → stock.warehouse
    check_company=True comodel_name='stock.warehouse' ondelete='cascade' required=True string='Warehouse'
Public methods (18)
  • action_cancel(self)
  • action_confirm(self)
  • action_done(self)
  • action_draft(self)
  • action_view_stock_requests(self)
  • action_view_transfer(self)
  • change_childs(self)
  • create(self, vals_list)
    @api.model_create_multi
  • default_get(self, fields)
    @api.model
  • get_parents(self)
  • onchange_company_id(self)
    @api.onchange('company_id')
  • onchange_expected_date(self)
    @api.onchange('expected_date')
  • onchange_location_id(self)
    @api.onchange('location_id')
  • onchange_picking_policy(self)
    @api.onchange('picking_policy')
  • onchange_reference_ids(self)
    @api.onchange('reference_ids')
  • onchange_requested_by(self)
    @api.onchange('requested_by')
  • onchange_warehouse_id(self)
    @api.onchange('warehouse_id')
  • unlink(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • run(self, procurements, raise_user_error=True)
    @api.model

New fields (0)

No new fields.

Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…