Skip to content

Commit e6fba45

Browse files
ChrisOForgeFlowPauBForgeFlow
authored andcommitted
[ADD] configuration to make pickings on purchase orders
1 parent 308b81c commit e6fba45

8 files changed

+75
-2
lines changed

purchase_manual_delivery/__manifest__.py

+1
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@
1616
"data": [
1717
"wizard/create_manual_stock_picking.xml",
1818
"views/purchase_order_views.xml",
19+
"views/res_config_view.xml",
1920
],
2021
}
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1+
from . import res_company
2+
from . import res_config
13
from . import purchase_order

purchase_manual_delivery/models/purchase_order.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ class PurchaseOrder(models.Model):
99
_inherit = "purchase.order"
1010

1111
pending_to_receive = fields.Boolean(compute="_compute_pending_to_receive")
12+
manual_delivery = fields.Boolean(
13+
string="Purchase manual delivery?",
14+
default=lambda self: self.env.company.purchase_manual_delivery,
15+
)
1216

1317
def _compute_pending_to_receive(self):
1418
for order in self:
@@ -22,7 +26,7 @@ def button_confirm_manual(self):
2226
super(PurchaseOrder, self.with_context(manual_delivery=True)).button_confirm()
2327

2428
def _create_picking(self):
25-
if self.env.context.get("manual_delivery", False):
29+
if self.env.context.get("manual_delivery", False) and self.manual_delivery:
2630
# We do not want to create the picking when confirming the order
2731
# if it comes from manual confirmation
2832
return
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Copyright 2022 ForgeFlow S.L.
2+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
3+
from odoo import fields, models
4+
5+
6+
class ResCompany(models.Model):
7+
8+
_inherit = "res.company"
9+
10+
purchase_manual_delivery = fields.Boolean(
11+
string="Purchase manual delivery?", required=False
12+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Copyright 2022 ForgeFlow S.L.
2+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
3+
from odoo import fields, models
4+
5+
6+
class ResConfigSettings(models.TransientModel):
7+
8+
_inherit = "res.config.settings"
9+
10+
purchase_manual_delivery = fields.Boolean(
11+
related="company_id.purchase_manual_delivery", readonly=False
12+
)

purchase_manual_delivery/tests/test_purchase_manual_delivery.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def setUp(self):
1212
self.purchase_order_obj = self.env["purchase.order"]
1313
self.purchase_order_line_obj = self.env["purchase.order.line"]
1414
self.stock_picking_obj = self.env["stock.picking"]
15-
15+
self.env.company.purchase_manual_delivery = True
1616
# Products
1717
self.product1 = self.env.ref("product.product_product_13")
1818
self.product2 = self.env.ref("product.product_product_25")

purchase_manual_delivery/views/purchase_order_views.xml

+3
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@
5353
name="decoration-info"
5454
>state == 'purchase' and pending_to_receive</attribute>
5555
</xpath>
56+
<group name="other_info" position="inside">
57+
<field name="manual_delivery" />
58+
</group>
5659
</field>
5760
</record>
5861

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<odoo>
3+
<record id="res_config_settings_view_form" model="ir.ui.view">
4+
<field name="name">res.config.settings.view.form.inherit.manual.delivery</field>
5+
<field name="model">res.config.settings</field>
6+
<field
7+
name="inherit_id"
8+
ref="purchase.res_config_settings_view_form_purchase"
9+
/>
10+
<field name="arch" type="xml">
11+
<div name="matrix_setting_container" position="after">
12+
<h2>Delivery</h2>
13+
<div
14+
class="row mt16 o_settings_container"
15+
name="matrix_setting_container"
16+
>
17+
<div
18+
class="col-12 col-lg-6 o_setting_box"
19+
id="purchase_manual_delivery"
20+
title="If active, Receipt of purchase orders should be manual created."
21+
>
22+
<div class="o_setting_left_pane">
23+
<field name="purchase_manual_delivery" />
24+
</div>
25+
<div class="o_setting_right_pane">
26+
<label
27+
for="purchase_manual_delivery"
28+
string="Manual Delivery"
29+
/>
30+
<div class="text-muted">
31+
Deliveries on purchase orders should be created manually.
32+
</div>
33+
</div>
34+
</div>
35+
</div>
36+
</div>
37+
</field>
38+
</record>
39+
</odoo>

0 commit comments

Comments
 (0)