| 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/19.0/sale_manual_delivery |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp SA |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp SA |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Tobias Zehntner |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:40:48 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/sale-workflow: - sale_stock_reference_by_line odoo/odoo: - stock_delivery - sale_stock - sale - sales_team - base - base_setup - web - bus - web_tour - html_editor - account_payment - account - onboarding - product - uom - analytic - portal - http_routing - auth_signup - digest - resource - payment - utm - stock_account - stock - barcodes_gs1_nomenclature - barcodes - delivery - payment_custom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | The goal of this module is to allow the manual creation of delivery slips. If activated, a sale order won't directly impact the stock. It will not make a reservation on the stock. It allows the delivery and the impact on stock to be done manually when needed. The goal is to be used on long term projects where not all the material is shipped at once. As you make many shipments, every time you make a new delivery, you can choose an new carrier as well as a planned date. A wizard helps you to chose what to deliver by showing you how much you already planned to ship.   |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_team_view_form |
crm.team.form | crm.team | group | Inherits sales_team.crm_team_view_form |
manual_delivery_wizard_form |
manual.delivery.wizard.form | manual.delivery | form | New |
view_order_form |
sale.order.form | sale.order | button | Inherits sale.view_order_form |
view_order_line_tree |
sale.order.line.tree | sale.order.line | field | Inherits sale.view_order_line_tree |
view_sales_order_undelivered_line_filter |
sale.order.undelivered.line | sale.order.line | search | New |
manual_delivery
Boolean
help='If enabled, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
No public methods.
carrier_id
Many2one → delivery.carrier
ondelete='cascade'
string='Delivery Method'
args: 'delivery.carrier'
commercial_partner_id
Many2one → res.partner
ondelete='cascade'
readonly=True
required=True
args: 'res.partner'
date_planned
Date
line_ids
One2many → manual.delivery.line
string='Lines to validate'
args: 'manual.delivery.line', 'manual_delivery_id'
partner_id
Many2one → res.partner
domain="['|',('id', '=', commercial_partner_id),('parent_id', '=', commercial_partner_id)]"
ondelete='cascade'
string='Delivery Address'
args: 'res.partner'
route_id
Many2one → stock.route
domain=[('sale_selectable', '=', True)]
help='Leave it blank to use the same route that is in the sale line'
ondelete='cascade'
string='Use specific Route'
args: 'stock.route'
confirm(self)
default_get(self, fields)
manual_delivery_id
Many2one → manual.delivery
ondelete='cascade'
readonly=True
required=True
string='Wizard'
args: 'manual.delivery'
name
Text
related='order_line_id.name'
order_line_id
Many2one → sale.order.line
ondelete='cascade'
readonly=True
required=True
string='Sale Order Line'
args: 'sale.order.line'
product_id
Many2one
related='order_line_id.product_id'
qty_ordered
Float
help='Quantity ordered in the related Sale Order'
readonly=True
related='order_line_id.product_uom_qty'
string='Ordered'
qty_procured
Float
related='order_line_id.qty_procured'
quantity
Float
No public methods.
has_pending_delivery
Boolean
compute='_compute_delivery_pending'
args: 'Delivery Pending'
manual_delivery
Boolean
help='If enabled, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
action_manual_delivery_wizard(self)
qty_procured
Float
compute='_compute_qty_procured'
help='Quantity already planned or shipped (stock movements already created)'
readonly=True
store=True
string='Quantity Procured'
qty_to_procure
Float
compute='_compute_qty_to_procure'
help='There is Pending qty to add to a delivery'
readonly=True
store=True
string='Quantity to Procure'
No public methods.
No new fields.
Public methods (0)No public methods.
date_planned
Date
partner_id
Many2one → res.partner
No public methods.
| 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/18.0/sale_manual_delivery |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp SA |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp SA |
| COMMITTERS | |
| COMMITTERS | Ruchir Shukla, Weblate, OCA-git-bot, oca-ci, David Gallay, samuel ramarosely |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:11 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock_delivery - sale_stock - sale - sales_team - base - base_setup - web - bus - web_tour - html_editor - account_payment - account - onboarding - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm - stock_account - stock - barcodes_gs1_nomenclature - barcodes - delivery |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | The goal of this module is to allow the manual creation of delivery slips. If activated, a sale order won't directly impact the stock. It will not make a reservation on the stock. It allows the delivery and the impact on stock to be done manually when needed. The goal is to be used on long term projects where not all the material is shipped at once. As you make many shipments, every time you make a new delivery, you can choose an new carrier as well as a planned date. A wizard helps you to chose what to deliver by showing you how much you already planned to ship.   |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_team_view_form |
crm.team.form | crm.team | group | Inherits sales_team.crm_team_view_form |
manual_delivery_wizard_form |
manual.delivery.wizard.form | manual.delivery | form | New |
view_order_form |
sale.order.form | sale.order | button | Inherits sale.view_order_form |
view_order_line_tree |
sale.order.line.tree | sale.order.line | field | Inherits sale.view_order_line_tree |
view_sales_order_undelivered_line_filter |
sale.order.undelivered.line | sale.order.line | search | New |
manual_delivery
Boolean
help='If enabled, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
No public methods.
carrier_id
Many2one → delivery.carrier
ondelete='cascade'
string='Delivery Method'
args: 'delivery.carrier'
commercial_partner_id
Many2one → res.partner
ondelete='cascade'
readonly=True
required=True
args: 'res.partner'
date_planned
Datetime
line_ids
One2many → manual.delivery.line
string='Lines to validate'
args: 'manual.delivery.line', 'manual_delivery_id'
partner_id
Many2one → res.partner
domain="['|',('id', '=', commercial_partner_id),('parent_id', '=', commercial_partner_id)]"
ondelete='cascade'
string='Delivery Address'
args: 'res.partner'
route_id
Many2one → stock.route
domain=[('sale_selectable', '=', True)]
help='Leave it blank to use the same route that is in the sale line'
ondelete='cascade'
string='Use specific Route'
args: 'stock.route'
confirm(self)
default_get(self, fields)
manual_delivery_id
Many2one → manual.delivery
ondelete='cascade'
readonly=True
required=True
string='Wizard'
args: 'manual.delivery'
name
Text
related='order_line_id.name'
order_line_id
Many2one → sale.order.line
ondelete='cascade'
readonly=True
required=True
string='Sale Order Line'
args: 'sale.order.line'
product_id
Many2one
related='order_line_id.product_id'
qty_ordered
Float
help='Quantity ordered in the related Sale Order'
readonly=True
related='order_line_id.product_uom_qty'
string='Ordered'
qty_procured
Float
related='order_line_id.qty_procured'
quantity
Float
No public methods.
date_planned
Date
No public methods.
has_pending_delivery
Boolean
compute='_compute_delivery_pending'
string='Delivery pending?'
manual_delivery
Boolean
help='If enabled, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
action_manual_delivery_wizard(self)
qty_procured
Float
compute='_compute_qty_procured'
help='Quantity already planned or shipped (stock movements already created)'
readonly=True
store=True
string='Quantity Procured'
qty_to_procure
Float
compute='_compute_qty_to_procure'
help='There is Pending qty to add to a delivery'
readonly=True
store=True
string='Quantity to Procure'
No public methods.
No new fields.
Public methods (0)No public methods.
| 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/17.0/sale_manual_delivery |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp SA |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp SA |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, andrea |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:05 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock_delivery - sale_stock - sale - sales_team - base - base_setup - web - bus - web_tour - account_payment - account - onboarding - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm - stock_account - stock - barcodes_gs1_nomenclature - barcodes - delivery |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | The goal of this module is to allow the manual creation of delivery slips. If activated, a sale order won't directly impact the stock. It will not make a reservation on the stock. It allows the delivery and the impact on stock to be done manually when needed. The goal is to be used on long term projects where not all the material is shipped at once. As you make many shipments, every time you make a new delivery, you can choose an new carrier as well as a planned date. A wizard helps you to chose what to deliver by showing you how much you already planned to ship.   |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_team_view_form |
crm.team.form | crm.team | group | Inherits sales_team.crm_team_view_form |
manual_delivery_wizard_form |
manual.delivery.wizard.form | manual.delivery | form | New |
view_order_form |
sale.order.form | sale.order | button | Inherits sale.view_order_form |
view_order_line_tree |
sale.order.line.tree | sale.order.line | field | Inherits sale.view_order_line_tree |
view_sales_order_undelivered_line_filter |
sale.order.undelivered.line | sale.order.line | search | New |
manual_delivery
Boolean
help='If enabled, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
No public methods.
carrier_id
Many2one → delivery.carrier
ondelete='cascade'
string='Delivery Method'
args: 'delivery.carrier'
commercial_partner_id
Many2one → res.partner
ondelete='cascade'
readonly=True
required=True
args: 'res.partner'
date_planned
Datetime
line_ids
One2many → manual.delivery.line
string='Lines to validate'
args: 'manual.delivery.line', 'manual_delivery_id'
partner_id
Many2one → res.partner
domain="['|',('id', '=', commercial_partner_id),('parent_id', '=', commercial_partner_id)]"
ondelete='cascade'
string='Delivery Address'
args: 'res.partner'
route_id
Many2one → stock.route
domain=[('sale_selectable', '=', True)]
help='Leave it blank to use the same route that is in the sale line'
ondelete='cascade'
string='Use specific Route'
args: 'stock.route'
confirm(self)
default_get(self, fields)
manual_delivery_id
Many2one → manual.delivery
ondelete='cascade'
readonly=True
required=True
string='Wizard'
args: 'manual.delivery'
name
Text
related='order_line_id.name'
order_line_id
Many2one → sale.order.line
ondelete='cascade'
readonly=True
required=True
string='Sale Order Line'
args: 'sale.order.line'
product_id
Many2one
related='order_line_id.product_id'
qty_ordered
Float
help='Quantity ordered in the related Sale Order'
readonly=True
related='order_line_id.product_uom_qty'
string='Ordered'
qty_procured
Float
related='order_line_id.qty_procured'
quantity
Float
No public methods.
date_planned
Date
No public methods.
has_pending_delivery
Boolean
compute='_compute_delivery_pending'
string='Delivery pending?'
manual_delivery
Boolean
help='If enabled, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
action_manual_delivery_wizard(self)
qty_procured
Float
compute='_compute_qty_procured'
help='Quantity already planned or shipped (stock movements already created)'
readonly=True
store=True
string='Quantity Procured'
qty_to_procure
Float
compute='_compute_qty_to_procure'
help='There is Pending qty to add to a delivery'
readonly=True
store=True
string='Quantity to Procure'
No public methods.
No new fields.
Public methods (0)No public methods.
| 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/16.0/sale_manual_delivery |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp SA |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp SA |
| COMMITTERS | |
| COMMITTERS | Denis Roussel, Weblate, OCA-git-bot, Simone Orsi, oca-ci, alex, nguyenhk, len |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:45 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - delivery - sale_stock - sale - sales_team - base - base_setup - web - bus - web_tour - account_payment - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm - stock_account - stock - barcodes_gs1_nomenclature - barcodes - sale_management |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_team_view_form |
crm.team.form | crm.team | group | Inherits sales_team.crm_team_view_form |
manual_delivery_wizard_form |
manual.delivery.wizard.form | manual.delivery | form | New |
view_order_form |
sale.order.form | sale.order | button | Inherits sale.view_order_form |
view_order_line_tree |
sale.order.line.tree | sale.order.line | field | Inherits sale.view_order_line_tree |
view_sales_order_undelivered_line_filter |
sale.order.undelivered.line | sale.order.line | search | New |
manual_delivery
Boolean
default=False
help='If enabled, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
No public methods.
carrier_id
Many2one → delivery.carrier
ondelete='cascade'
string='Delivery Method'
args: 'delivery.carrier'
commercial_partner_id
Many2one → res.partner
ondelete='cascade'
readonly=True
required=True
args: 'res.partner'
date_planned
Datetime
line_ids
One2many → manual.delivery.line
string='Lines to validate'
args: 'manual.delivery.line', 'manual_delivery_id'
partner_id
Many2one → res.partner
domain='\n [\n "|",\n ("id", "=", commercial_partner_id),\n ("parent_id", "=", commercial_partner_id),\n ],\n '
ondelete='cascade'
string='Delivery Address'
args: 'res.partner'
route_id
Many2one → stock.route
domain=[('sale_selectable', '=', True)]
help='Leave it blank to use the same route that is in the sale line'
ondelete='cascade'
string='Use specific Route'
args: 'stock.route'
confirm(self)
default_get(self, fields)
manual_delivery_id
Many2one → manual.delivery
ondelete='cascade'
readonly=True
required=True
string='Wizard'
args: 'manual.delivery'
name
Text
related='order_line_id.name'
order_line_id
Many2one → sale.order.line
ondelete='cascade'
readonly=True
required=True
string='Sale Order Line'
args: 'sale.order.line'
product_id
Many2one
related='order_line_id.product_id'
qty_ordered
Float
help='Quantity ordered in the related Sale Order'
readonly=True
related='order_line_id.product_uom_qty'
string='Ordered'
qty_procured
Float
related='order_line_id.qty_procured'
quantity
Float
No public methods.
date_planned
Date
No public methods.
has_pending_delivery
Boolean
compute='_compute_delivery_pending'
string='Delivery pending?'
manual_delivery
Boolean
default=False
help='If enabled, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
action_manual_delivery_wizard(self)
qty_procured
Float
compute='_compute_qty_procured'
help='Quantity already planned or shipped (stock movements already created)'
readonly=True
store=True
string='Quantity Procured'
qty_to_procure
Float
compute='_compute_qty_to_procure'
help='There is Pending qty to add to a delivery'
readonly=True
store=True
string='Quantity to Procure'
No public methods.
No new fields.
Public methods (0)No public methods.
| 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/14.0/sale_manual_delivery |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp SA |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp SA |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Giovanni, Christopher Ormaza |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:58 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - delivery - sale_stock - 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 - stock_account - stock - barcodes - sale_management |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_team_view_form |
crm.team.form | crm.team | group | Inherits sales_team.crm_team_view_form |
manual_delivery_wizard_form |
manual.delivery.wizard.form | manual.delivery | form | New |
view_order_form |
sale.order.form | sale.order | button | Inherits sale.view_order_form |
view_order_line_tree |
sale.order.line.tree | sale.order.line | field | Inherits sale.view_order_line_tree |
view_sales_order_undelivered_line_filter |
sale.order.undelivered.line | sale.order.line | search | New |
manual_delivery
Boolean
default=False
help='If enabled, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
string='Manual Delivery'
No public methods.
carrier_id
Many2one → delivery.carrier
ondelete='cascade'
string='Delivery Method'
args: 'delivery.carrier'
commercial_partner_id
Many2one → res.partner
ondelete='cascade'
readonly=True
required=True
args: 'res.partner'
date_planned
Datetime
string='Date Planned'
line_ids
One2many → manual.delivery.line
string='Lines to validate'
args: 'manual.delivery.line', 'manual_delivery_id'
partner_id
Many2one → res.partner
domain='\n [\n "|",\n ("id", "=", commercial_partner_id),\n ("parent_id", "=", commercial_partner_id),\n ],\n '
ondelete='cascade'
string='Delivery Address'
args: 'res.partner'
route_id
Many2one → stock.location.route
domain=[('sale_selectable', '=', True)]
help='Leave it blank to use the same route that is in the sale line'
ondelete='cascade'
string='Use specific Route'
args: 'stock.location.route'
confirm(self)
default_get(self, fields)
manual_delivery_id
Many2one → manual.delivery
ondelete='cascade'
readonly=True
required=True
string='Wizard'
args: 'manual.delivery'
name
Text
related='order_line_id.name'
order_line_id
Many2one → sale.order.line
ondelete='cascade'
readonly=True
required=True
string='Sale Order Line'
args: 'sale.order.line'
product_id
Many2one
related='order_line_id.product_id'
qty_ordered
Float
help='Quantity ordered in the related Sale Order'
readonly=True
related='order_line_id.product_uom_qty'
string='Ordered'
qty_procured
Float
related='order_line_id.qty_procured'
quantity
Float
No public methods.
date_planned
Date
No public methods.
has_pending_delivery
Boolean
compute='_compute_delivery_pending'
string='Delivery pending?'
manual_delivery
Boolean
default=False
help='If enabled, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
string='Manual Delivery'
action_manual_delivery_wizard(self)
qty_procured
Float
compute='_compute_qty_procured'
help='Quantity already planned or shipped (stock movements already created)'
readonly=True
store=True
string='Quantity Procured'
qty_to_procure
Float
compute='_compute_qty_to_procure'
help='There is Pending qty to add to a delivery'
readonly=True
store=True
string='Quantity to Procure'
No public methods.
No new fields.
Public methods (0)No public methods.
| 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/13.0/sale_manual_delivery |
| VERSION | |
| VERSION | 1.2.0 |
| CATEGORY | |
| CATEGORY | Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp SA |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp SA |
| COMMITTERS | |
| COMMITTERS | Alexandre Fayolle, Pedro M. Baeza, Denis Roussel, Ivàn Todorovich, Adrien Peiffer, oca-travis, Weblate, OCA-git-bot, Telmo Santos, Zina Rasoamanana |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:13 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - delivery - sale_stock - 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 - stock_account - stock - barcodes - sale_management |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_team_view_form |
crm.team.form | crm.team | group | Inherits sales_team.crm_team_view_form |
manual_delivery_wizard_form |
manual.delivery.wizard.form | manual.delivery | form | New |
view_order_form |
sale.order.form | sale.order | button | Inherits sale.view_order_form |
view_order_line_tree |
sale.order.line.tree | sale.order.line | field | Inherits sale.view_order_line_tree |
view_sales_order_undelivered_line_filter |
sale.order.undelivered.line | sale.order.line | search | New |
manual_delivery
Boolean
default=False
help='If enabled, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
string='Manual Delivery'
No public methods.
carrier_id
Many2one → delivery.carrier
ondelete='cascade'
string='Delivery Method'
args: 'delivery.carrier'
commercial_partner_id
Many2one → res.partner
ondelete='cascade'
readonly=True
required=True
args: 'res.partner'
date_planned
Datetime
string='Date Planned'
line_ids
One2many → manual.delivery.line
string='Lines to validate'
args: 'manual.delivery.line', 'manual_delivery_id'
partner_id
Many2one → res.partner
domain='\n [\n "|",\n ("id", "=", commercial_partner_id),\n ("parent_id", "=", commercial_partner_id),\n ],\n '
ondelete='cascade'
string='Delivery Address'
args: 'res.partner'
route_id
Many2one → stock.location.route
domain=[('sale_selectable', '=', True)]
help='Leave it blank to use the same route that is in the sale line'
ondelete='cascade'
string='Use specific Route'
args: 'stock.location.route'
confirm(self)
default_get(self, fields)
manual_delivery_id
Many2one → manual.delivery
ondelete='cascade'
readonly=True
required=True
string='Wizard'
args: 'manual.delivery'
name
Text
related='order_line_id.name'
order_line_id
Many2one → sale.order.line
ondelete='cascade'
readonly=True
required=True
string='Sale Order Line'
args: 'sale.order.line'
product_id
Many2one
related='order_line_id.product_id'
qty_ordered
Float
help='Quantity ordered in the related Sale Order'
readonly=True
related='order_line_id.product_uom_qty'
string='Ordered'
qty_procured
Float
related='order_line_id.qty_procured'
quantity
Float
No public methods.
date_planned
Date
No public methods.
manual_delivery
Boolean
default=False
help='If enabled, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
string='Manual Delivery'
action_manual_delivery_wizard(self)
qty_procured
Float
compute='_compute_qty_procured'
help='Quantity already planned or shipped (stock movements already created)'
readonly=True
store=True
string='Quantity Procured'
qty_to_procure
Float
compute='_compute_qty_to_procure'
help='There is Pending qty to add to a delivery'
readonly=True
store=True
string='Quantity to Procure'
No public methods.
No new fields.
Public methods (0)No public methods.
| 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/12.0/sale_manual_delivery |
| VERSION | |
| VERSION | 2.0.3 |
| CATEGORY | |
| CATEGORY | Sale |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp |
| COMMITTERS | |
| COMMITTERS | OCA Transbot, ahenriquez, oca-travis, Weblate, OCA-git-bot, sergiocorato, Vincent Van Rossem |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:17 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - delivery - sale_stock - sale - sales_team - base - base_setup - web - bus - web_tour - payment - account - product - decimal_precision - uom - analytic - portal - http_routing - digest - stock_account - stock - barcodes - sale_management |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_team_view_form |
crm.team.form | crm.team | group | Inherits sales_team.crm_team_view_form |
manual_delivery_wizard_form |
manual.delivery.wizard.form | manual.delivery | form | New |
view_order_form |
sale.order.form | sale.order | xpath | Inherits sale.view_order_form |
view_order_line_form2 |
sale.order.line.form2 | sale.order.line | form | New |
view_order_line_tree |
sale.order.line.tree | sale.order.line | field | Inherits sale.view_order_line_tree |
view_sales_order_undelivered_line_filter |
sale.order.undelivered.line | sale.order.line | search | New |
manual_delivery
Boolean
default=False
help='If Manual, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
string='Manual Delivery'
No public methods.
carrier_id
Many2one → delivery.carrier
string='Delivery Method'
args: 'delivery.carrier'
commercial_partner_id
Many2one → res.partner
date_planned
Datetime
string='Date Planned'
line_ids
One2many → manual.delivery.line
string='Lines to validate'
args: 'manual.delivery.line', 'manual_delivery_id'
partner_id
Many2one → res.partner
domain=PARTNER_DOMAIN
string='Delivery Address'
args: 'res.partner'
route_id
Many2one → stock.location.route
domain=[('sale_selectable', '=', True)]
help='Leave it blank to use the same route that is in the sale line'
ondelete='restrict'
string='Use specific Route'
args: 'stock.location.route'
default_get(self, fields)
fill_lines(self, sale_lines)
record_picking(self)
existing_qty
Float
help='Quantity already planned or shipped (stock movements already created)'
args: 'Existing quantity'
line_description
Text
related='order_line_id.name'
string='Description'
manual_delivery_id
Many2one → manual.delivery
string='Wizard manual procurement'
args: 'manual.delivery'
order_line_id
Many2one → sale.order.line
string='Sale Order Line'
args: 'sale.order.line'
ordered_qty
Float
help='Quantity ordered in the related Sale Order'
related='order_line_id.product_uom_qty'
args: 'Ordered quantity'
product_id
Many2one → product.product
related='order_line_id.product_id'
string='Product'
args: 'product.product'
remaining_qty
Float
compute='_compute_remaining_qty'
help='Remaining quantity available to deliver'
args: 'Remaining quantity'
to_ship_qty
Float
No public methods.
date_planned
Date
No public methods.
manual_delivery
Boolean
default=False
help='If Manual, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
string='Manual Delivery'
action_manual_delivery_wizard(self)
toggle_manual(self)
existing_qty
Float
compute='_compute_get_existing_qty'
help='Quantity already planned or shipped (stock movements already created)'
readonly=True
args: 'Existing quantity'
pending_qty_to_deliver
Boolean
compute='_compute_get_existing_qty'
readonly=True
store=True
string='There is Pending qty to add to a delivery'
No public methods.
carrier_id
Many2one → delivery.carrier
string='Delivery Method'
args: 'delivery.carrier'
No public methods.
| 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/10.0/sale_manual_delivery |
| VERSION | |
| VERSION | 2.0.1 |
| CATEGORY | |
| CATEGORY | Sales |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp |
| COMMITTERS | |
| COMMITTERS | Miquel Raïch, AaronHForgeFlow, OCA-git-bot, oca-ci, Vincent Van Rossem |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:19:56 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale_stock - sale - sales_team - base - base_setup - web_kanban - web - bus - web_tour - account - product - decimal_precision - report - analytic - web_planner - procurement - stock_account - stock - barcodes - delivery |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_team_view_form |
crm.team.form | crm.team | group | Inherits sales_team.crm_team_view_form |
manual_delivery_wizard_form |
manual.delivery.wizard.form | manual.delivery | form | New |
procurement_group_form_view_inherited |
procurement.group.view.form.inherit.picking | procurement.group | field | Inherits procurement.procurement_group_form_view |
procurement_manual_form_view |
procurement.form | procurement.order | xpath | Inherits procurement.procurement_form_view |
view_order_form |
sale.order.form | sale.order | xpath | Inherits sale.view_order_form |
view_order_line_form2 |
sale.order.line.form2 | sale.order.line | form | New |
view_order_line_tree |
sale.order.line.tree | sale.order.line | field | Inherits sale.view_order_line_tree |
view_sales_order_undelivered_line_filter |
sale.order.undelivered.line | sale.order.line | search | New |
manual_delivery
Boolean
default=False
help='If Manual, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
string='Manual Delivery'
No public methods.
carrier_id
Many2one → delivery.carrier
string='Delivery Method'
args: 'delivery.carrier'
commercial_partner_id
Many2one → res.partner
date_planned
Date
string='Date Planned'
line_ids
One2many → manual.delivery.line
string='Lines to validate'
args: 'manual.delivery.line', 'manual_delivery_id'
partner_id
Many2one → res.partner
domain=PARTNER_DOMAIN
string='Delivery Address'
args: 'res.partner'
route_id
Many2one → stock.location.route
domain=[('sale_selectable', '=', True)]
help='Leave it blank to use the same route that is in the sale line'
ondelete='restrict'
string='Use specific Route'
args: 'stock.location.route'
sale_line_ids
Many2many → sale.order.line
default_get(self, fields)
fill_lines(self, sale_lines)
onchange_line_ids(self)
record_picking(self)
existing_qty
Float
digits=dp.get_precision('Product Unit of Measure')
help='Quantity already planned or shipped (stock movements already created)'
readonly=True
args: 'Existing quantity'
line_description
Text
readonly=True
related='order_line_id.name'
string='Description'
manual_delivery_id
Many2one → manual.delivery
string='Wizard manual procurement'
args: 'manual.delivery'
order_line_id
Many2one → sale.order.line
readonly=True
string='Sale Order Line'
args: 'sale.order.line'
ordered_qty
Float
digits=dp.get_precision('Product Unit of Measure')
help='Quantity ordered in the related Sale Order'
readonly=True
args: 'Ordered quantity'
product_id
Many2one → product.product
readonly=True
related='order_line_id.product_id'
string='Product'
args: 'product.product'
remaining_qty
Float
compute='_compute_remaining_qty'
digits=dp.get_precision('Product Unit of Measure')
help='Remaining quantity available to deliver'
readonly=True
args: 'Remaining quantity'
to_ship_qty
Float
digits=dp.get_precision('Product Unit of Measure')
args: 'Quantity to Ship'
No public methods.
date_planned
Datetime
index=True
string='Schedule Date'
No public methods.
carrier_id
Many2one → delivery.carrier
string='Delivery Method'
args: 'delivery.carrier'
manual_delivery
Boolean
default=False
help='If Manual, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
string='Manual Delivery'
No public methods.
manual_delivery
Boolean
default=False
help='If Manual, the deliveries are not created at SO confirmation. You need to use the Create Delivery button in order to reserve and ship the goods.'
string='Manual Delivery'
action_manual_delivery_wizard(self)
toggle_manual(self)
existing_qty
Float
compute='_compute_existing_qty'
help='Quantity already planned or shipped (stock movements already created)'
args: 'Existing quantity'
pending_qty_to_deliver
Boolean
compute='_compute_existing_qty'
readonly=True
store=True
string='There is Pending qty to add to a delivery'
No public methods.
No new fields.
Public methods (1)assign_picking(self)