Repository
OCA/purchase-workflow · module folder · Try on Runboat
Module version
1.0.0
Category
Uncategorized
Folder size
0.22 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/purchase-workflow
Last tracking update
2026-08-07 08:42:59
Authors
Odoo Community Association (OCA), ForgeFlow S.L.
Maintainers
Odoo Community Association (OCA), ForgeFlow S.L.
Committers
Stefan Rijnhart, Weblate, OCA-git-bot, oca-ci
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
The goal of this module is to allow the manual creation of incoming
shipments. When installed, a purchase order won't impact directly the
stock. It will not create the pickings upon order confirmation. It
allows the reception and the impact on stock to be done manually when
needed. The goal is to be used when a supplier does not confirm the full
order at once. As the supplier confirms the different purchase order
lines, the user can manually create the incoming shipments for those
specific lines.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
purchase_order_line_search purchase.order.line search Inherits purchase.purchase_order_line_search
purchase_order_line_tree purchase.order.line tree Inherits purchase.purchase_order_line_tree
purchase_order_view_form_inherit purchase.order.form purchase.order form Inherits purchase.purchase_order_form
res_config_settings_view_form res.config.settings.view.form.inherit.manual.delivery res.config.settings form Inherits purchase.res_config_settings_view_form_purchase
view_create_stock_picking Create Stock Picking create.stock.picking.wizard form New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (8)

New fields (6)
  • line_ids One2many → create.stock.picking.wizard.line
    comodel_name='create.stock.picking.wizard.line' inverse_name='wizard_id' string='Lines'
  • location_dest_id Many2one → stock.location
    default=_default_location_dest_id help='Location where the system will stock the received products.' args: 'stock.location', 'Destination Location'
  • partner_id Many2one → res.partner
    args: 'res.partner', 'Vendor'
  • picking_id Many2one → stock.picking
    string='Stock Picking' args: 'stock.picking'
  • purchase_id Many2one → purchase.order
    default=_default_purchase_order readonly=True string='Purchase Order' args: 'purchase.order'
  • scheduled_date Datetime
    related='picking_id.scheduled_date' args: 'Scheduled Date'
Public methods (4)
  • create_stock_picking(self)
  • default_get(self, fields)
    @api.model
  • fill_lines(self, po_lines)
  • onchange_picking_id(self)
    @api.onchange('picking_id')

New fields (15)
  • currency_id Many2one → res.currency
    related='purchase_order_line_id.currency_id' args: 'res.currency'
  • date_planned Datetime
    related='purchase_order_line_id.date_planned'
  • name Text
    readonly=True string='Description'
  • partner_id Many2one → res.partner
    related='purchase_order_line_id.partner_id' string='Vendor' args: 'res.partner'
  • price_unit Float
    related='purchase_order_line_id.price_unit'
  • product_id Many2one → product.product
    related='purchase_order_line_id.product_id' string='Product' args: 'product.product'
  • product_qty Float
    digits='Product Unit of Measure' related='purchase_order_line_id.product_qty' string='Quantity'
  • product_uom Many2one → uom.uom
    related='purchase_order_line_id.product_uom' string='Unit of Measure' args: 'uom.uom'
  • purchase_order_line_id Many2one → purchase.order.line
    args: 'purchase.order.line'
  • qty Float
    digits='Product Unit of Measure' help='This is the quantity taken into account to create the picking' string='Quantity to Receive'
  • qty_in_receipt Float
    digits='Product Unit of Measure' related='purchase_order_line_id.qty_in_receipt'
  • qty_received Float
    digits='Product Unit of Measure' related='purchase_order_line_id.qty_received'
  • remaining_qty Float
    compute='_compute_remaining_qty' digits='Product Unit of Measure' string='Remaining Quantity'
  • taxes_id Many2many → account.tax
    related='purchase_order_line_id.taxes_id' args: 'account.tax'
  • wizard_id Many2one → create.stock.picking.wizard
    comodel_name='create.stock.picking.wizard' ondelete='cascade' required=True string='Wizard'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • manual_delivery Boolean
    compute='_compute_manual_delivery' help="Stock transfers need to be created manually to receive this PO's products" readonly=False store=True string='Manual delivery'
  • pending_to_receive Boolean
    compute='_compute_pending_to_receive'
Public methods (0)

No public methods.

New fields (2)
  • pending_to_receive Boolean
    compute='_compute_qty_in_receipt' help='There is pending quantity to receive not yet planned' store=True string='Pending Qty to Receive'
  • qty_in_receipt Float
    compute='_compute_qty_in_receipt' digits='Product Unit of Measure' help='Quantity for which there are pending stock moves' store=True
Public methods (0)

No public methods.

New fields (1)
  • purchase_manual_delivery Boolean
    required=False string='Purchase manual delivery?'
Public methods (0)

No public methods.

New fields (1)
  • purchase_manual_delivery Boolean
    readonly=False related='company_id.purchase_manual_delivery'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…