Skip to content

Commit 79a1ea9

Browse files
kittiuSaran440
authored andcommitted
Add 'WA not required' option on Operation Type
1 parent 0a6ca2c commit 79a1ea9

File tree

5 files changed

+37
-9
lines changed

5 files changed

+37
-9
lines changed

purchase_work_acceptance/__manifest__.py

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"views/purchase_views.xml",
1818
"views/res_config_settings_views.xml",
1919
"views/stock_picking_views.xml",
20+
"views/stock_picking_type_views.xml",
2021
"views/work_acceptance_views.xml",
2122
"wizard/select_work_acceptance_wizard_views.xml",
2223
"wizard/work_accepted_date_wizard.xml",

purchase_work_acceptance/models/stock_picking.py

+19-6
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,16 @@ class Picking(models.Model):
2121
)
2222

2323
def _compute_require_wa(self):
24-
if self.picking_type_code == "incoming":
25-
self.require_wa = self.env.user.has_group(
26-
"purchase_work_acceptance.group_enforce_wa_on_in"
27-
)
28-
else:
29-
self.require_wa = False
24+
for rec in self:
25+
if rec.picking_type_id.bypass_wa:
26+
rec.require_wa = False
27+
continue
28+
if rec.picking_type_code == "incoming":
29+
rec.require_wa = self.env.user.has_group(
30+
"purchase_work_acceptance.group_enforce_wa_on_in"
31+
)
32+
continue
33+
rec.require_wa = False
3034

3135
@api.depends("require_wa")
3236
def _compute_wa_ids(self):
@@ -97,3 +101,12 @@ def _onchange_wa_id(self):
97101
wa_line[line.product_id.id] = qty - move_line.product_uom_qty
98102
else:
99103
move_line._origin.qty_done = qty
104+
105+
106+
class StockPickingType(models.Model):
107+
_inherit = "stock.picking.type"
108+
109+
bypass_wa = fields.Boolean(
110+
string="WA not required",
111+
help="When 'Enforce WA on Goods Receipt' is set, this option type can by pass it",
112+
)

purchase_work_acceptance/models/work_acceptance.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,9 @@ def _get_valid_wa(self, doctype, order_id):
151151
]
152152
)
153153
if doctype == "invoice":
154-
used_wa = order.invoice_ids.filtered(lambda l: l.state == "posted").mapped(
155-
"wa_id"
156-
)
154+
used_wa = order.invoice_ids.filtered(
155+
lambda l: l.state in ("draft", "posted")
156+
).mapped("wa_id")
157157
return all_wa - used_wa
158158
if doctype == "picking":
159159
used_wa = order.picking_ids.mapped("wa_id")

purchase_work_acceptance/readme/CONFIGURE.rst

+1
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,5 @@ Note:
2727

2828
* You can check 'Enable WA on Goods Receipt' and 'Enable WA on Vendor Bill' after checked 'Enable WA on Purchase Order'
2929
* You can check 'Enforce WA on Goods Receipt' after checked 'Enable WA on Goods Receipt'
30+
* But you can bypass WA on some Picking Operation by setting 'WA not required' on Operation Type
3031
* You can check 'Enforce WA on Vendor Bill' after checked 'Enable WA on Vendor Bill'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<odoo>
3+
<record model="ir.ui.view" id="view_picking_type_form">
4+
<field name="name">view.picking.type.form</field>
5+
<field name="model">stock.picking.type</field>
6+
<field name="inherit_id" ref="stock.view_picking_type_form" />
7+
<field name="arch" type="xml">
8+
<field name="show_reserved" position="after">
9+
<field name="bypass_wa" />
10+
</field>
11+
</field>
12+
</record>
13+
</odoo>

0 commit comments

Comments
 (0)