odoo-addon-quality-control-stock-oca 16.0.1.0.0.10__py3-none-any.whl → 16.0.1.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,7 @@
1
+ .. image:: https://odoo-community.org/readme-banner-image
2
+ :target: https://odoo-community.org/get-involved?utm_source=readme
3
+ :alt: Odoo Community Association
4
+
1
5
  =============================
2
6
  Quality control - Stock (OCA)
3
7
  =============================
@@ -7,13 +11,13 @@ Quality control - Stock (OCA)
7
11
  !! This file is generated by oca-gen-addon-readme !!
8
12
  !! changes will be overwritten. !!
9
13
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
- !! source digest: sha256:7430252681826a0a0f9a869194458e38ac20900898f0f8ff40422f13702695ee
14
+ !! source digest: sha256:285b7214af261985e80304bbe6c39193d32e483c331e234b107ac16d93bd943e
11
15
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
16
 
13
17
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
14
18
  :target: https://odoo-community.org/page/development-status
15
19
  :alt: Beta
16
- .. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
20
+ .. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
17
21
  :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
18
22
  :alt: License: AGPL-3
19
23
  .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmanufacture-lightgray.png?logo=github
@@ -37,6 +41,20 @@ It also adds some shortcuts on picking and lots to these inspections.
37
41
  .. contents::
38
42
  :local:
39
43
 
44
+ Configuration
45
+ =============
46
+
47
+ Configure a QC trigger in the product, product template, or product category to define the conditions for creating inspections:
48
+
49
+ * Trigger: Choose the trigger to activate the inspection process.
50
+ * Test: Define a group of questions with valid values for the inspection.
51
+ * Responsible: Assign a user responsible for the QC inspection.
52
+ * Partner: Optionally specify partners to limit the test to actions involving them.
53
+ * Timing: Determine when inspections are generated:
54
+ * Before: On picking confirmation.
55
+ * After: On picking completion.
56
+ * Plan Ahead: On picking confirmation, generating a non-editable plan inspection that becomes executable post-picking completion.
57
+
40
58
  Known issues / Roadmap
41
59
  ======================
42
60
 
@@ -76,6 +94,11 @@ Contributors
76
94
  * Pedro M. Baeza
77
95
  * Carlos Roca
78
96
 
97
+ * `Quartile <https://www.quartile.co>`_:
98
+
99
+ * Aung Ko Ko Lin
100
+ * Yoshi Tashiro
101
+
79
102
  Maintainers
80
103
  ~~~~~~~~~~~
81
104
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  {
7
7
  "name": "Quality control - Stock (OCA)",
8
- "version": "16.0.1.0.0",
8
+ "version": "16.0.1.2.0",
9
9
  "category": "Quality control",
10
10
  "license": "AGPL-3",
11
11
  "author": "OdooMRP team, AvanzOSC, Serv. Tecnol. Avanzados - Pedro M. Baeza, "
@@ -135,6 +135,11 @@ msgstr ""
135
135
  msgid "Quality inspections from picking failed"
136
136
  msgstr ""
137
137
 
138
+ #. module: quality_control_stock_oca
139
+ #: model:ir.model,name:quality_control_stock_oca.model_stock_move
140
+ msgid "Stock Move"
141
+ msgstr ""
142
+
138
143
  #. module: quality_control_stock_oca
139
144
  #: model:ir.model,name:quality_control_stock_oca.model_stock_picking
140
145
  msgid "Transfer"
@@ -2,6 +2,7 @@
2
2
 
3
3
  from . import qc_trigger
4
4
  from . import qc_inspection
5
+ from . import stock_move
5
6
  from . import stock_picking_type
6
7
  from . import stock_picking
7
8
  from . import stock_production_lot
@@ -72,6 +72,11 @@ class QcInspection(models.Model):
72
72
  # Fill qty when coming from pack operations
73
73
  if object_ref and object_ref._name == "stock.move":
74
74
  res["qty"] = object_ref.product_uom_qty
75
+ if object_ref.picking_id.immediate_transfer and trigger_line.timing in [
76
+ "before",
77
+ "plan_ahead",
78
+ ]:
79
+ res["qty"] = object_ref.quantity_done
75
80
  return res
76
81
 
77
82
 
@@ -0,0 +1,68 @@
1
+ # Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
2
+ # Copyright 2018 Simone Rubino - Agile Business Group
3
+ # Copyright 2019 Andrii Skrypka
4
+ # Copyright 2024 Quartile
5
+ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
6
+
7
+ from functools import lru_cache
8
+
9
+ from odoo import models
10
+
11
+ from odoo.addons.quality_control_oca.models.qc_trigger_line import _filter_trigger_lines
12
+
13
+
14
+ class StockMove(models.Model):
15
+ _inherit = "stock.move"
16
+
17
+ def write(self, vals):
18
+ if "date" in vals:
19
+ existing_inspections = self.env["qc.inspection"]._get_existing_inspections(
20
+ self
21
+ )
22
+ existing_inspections.write({"date": vals.get("date")})
23
+ return super().write(vals)
24
+
25
+ def _get_partner_for_trigger_line(self):
26
+ return self.picking_id.partner_id
27
+
28
+ def trigger_inspection(self, timings, partner=False):
29
+ @lru_cache()
30
+ def get_qc_trigger(picking_type):
31
+ return (
32
+ self.env["qc.trigger"]
33
+ .sudo()
34
+ .search([("picking_type_id", "=", picking_type.id)])
35
+ )
36
+
37
+ self.ensure_one()
38
+ inspection_model = self.env["qc.inspection"].sudo()
39
+ qc_trigger = get_qc_trigger(self.picking_type_id)
40
+ if qc_trigger.partner_selectable:
41
+ partner = partner or self._get_partner_for_trigger_line()
42
+ else:
43
+ partner = False
44
+ trigger_lines = set()
45
+ for model in [
46
+ "qc.trigger.product_category_line",
47
+ "qc.trigger.product_template_line",
48
+ "qc.trigger.product_line",
49
+ ]:
50
+ trigger_lines = trigger_lines.union(
51
+ self.env[model]
52
+ .sudo()
53
+ .get_trigger_line_for_product(
54
+ qc_trigger, timings, self.product_id.sudo(), partner=partner
55
+ )
56
+ )
57
+ for trigger_line in _filter_trigger_lines(trigger_lines):
58
+ date = False
59
+ if trigger_line.timing in ["before", "plan_ahead"]:
60
+ # To pass scheduled date to the generated inspection
61
+ date = self.date
62
+ inspection_model._make_inspection(self, trigger_line, date=date)
63
+
64
+ def _action_confirm(self, merge=True, merge_into=False):
65
+ moves = super()._action_confirm(merge=merge, merge_into=merge_into)
66
+ for move in moves:
67
+ move.trigger_inspection(["before", "plan_ahead"])
68
+ return moves
@@ -1,12 +1,11 @@
1
1
  # Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
2
2
  # Copyright 2018 Simone Rubino - Agile Business Group
3
3
  # Copyright 2019 Andrii Skrypka
4
+ # Copyright 2024 Quartile
4
5
  # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
5
6
 
6
7
  from odoo import api, fields, models
7
8
 
8
- from odoo.addons.quality_control_oca.models.qc_trigger_line import _filter_trigger_lines
9
-
10
9
 
11
10
  class StockPicking(models.Model):
12
11
  _inherit = "stock.picking"
@@ -56,29 +55,37 @@ class StockPicking(models.Model):
56
55
  picking.passed_inspections + picking.failed_inspections
57
56
  )
58
57
 
58
+ def trigger_inspections(self, timings):
59
+ """Triggers the creation of or an update on inspections for attached stock moves
60
+
61
+ :param: timings: list of timings among 'before', 'after' and 'plan_ahead'
62
+ """
63
+ self.ensure_one()
64
+ moves_with_inspections = self.env["stock.move"]
65
+ existing_inspections = self.env["qc.inspection"]._get_existing_inspections(
66
+ self.move_ids
67
+ )
68
+ for inspection in existing_inspections:
69
+ inspection.onchange_object_id()
70
+ moves_with_inspections += inspection.object_id
71
+ for operation in self.move_ids - moves_with_inspections:
72
+ operation.trigger_inspection(timings, self.partner_id)
73
+
74
+ def action_cancel(self):
75
+ res = super().action_cancel()
76
+ self.qc_inspections_ids.filtered(lambda x: x.state == "plan").action_cancel()
77
+ return res
78
+
59
79
  def _action_done(self):
60
80
  res = super()._action_done()
61
- inspection_model = self.env["qc.inspection"].sudo()
62
- qc_trigger = (
63
- self.env["qc.trigger"]
64
- .sudo()
65
- .search([("picking_type_id", "=", self.picking_type_id.id)])
66
- )
67
- for operation in self.move_ids:
68
- trigger_lines = set()
69
- for model in [
70
- "qc.trigger.product_category_line",
71
- "qc.trigger.product_template_line",
72
- "qc.trigger.product_line",
73
- ]:
74
- partner = self.partner_id if qc_trigger.partner_selectable else False
75
- trigger_lines = trigger_lines.union(
76
- self.env[model]
77
- .sudo()
78
- .get_trigger_line_for_product(
79
- qc_trigger, operation.product_id.sudo(), partner=partner
80
- )
81
- )
82
- for trigger_line in _filter_trigger_lines(trigger_lines):
83
- inspection_model._make_inspection(operation, trigger_line)
81
+ plan_inspections = self.qc_inspections_ids.filtered(lambda x: x.state == "plan")
82
+ plan_inspections.write({"state": "ready", "date": fields.Datetime.now()})
83
+ for picking in self:
84
+ picking.trigger_inspections(["after"])
85
+ return res
86
+
87
+ def _create_backorder(self):
88
+ res = super()._create_backorder()
89
+ # To re-allocate backorder moves to the new backorder picking
90
+ self.qc_inspections_ids._compute_picking()
84
91
  return res
@@ -0,0 +1,10 @@
1
+ Configure a QC trigger in the product, product template, or product category to define the conditions for creating inspections:
2
+
3
+ * Trigger: Choose the trigger to activate the inspection process.
4
+ * Test: Define a group of questions with valid values for the inspection.
5
+ * Responsible: Assign a user responsible for the QC inspection.
6
+ * Partner: Optionally specify partners to limit the test to actions involving them.
7
+ * Timing: Determine when inspections are generated:
8
+ * Before: On picking confirmation.
9
+ * After: On picking completion.
10
+ * Plan Ahead: On picking confirmation, generating a non-editable plan inspection that becomes executable post-picking completion.
@@ -7,3 +7,8 @@
7
7
 
8
8
  * Pedro M. Baeza
9
9
  * Carlos Roca
10
+
11
+ * `Quartile <https://www.quartile.co>`_:
12
+
13
+ * Aung Ko Ko Lin
14
+ * Yoshi Tashiro
@@ -1,18 +1,18 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
1
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
2
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
3
  <head>
5
4
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
5
  <meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
7
- <title>Quality control - Stock (OCA)</title>
6
+ <title>README.rst</title>
8
7
  <style type="text/css">
9
8
 
10
9
  /*
11
10
  :Author: David Goodger (goodger@python.org)
12
- :Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
11
+ :Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
13
12
  :Copyright: This stylesheet has been placed in the public domain.
14
13
 
15
14
  Default cascading style sheet for the HTML output of Docutils.
15
+ Despite the name, some widely supported CSS2 features are used.
16
16
 
17
17
  See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
18
18
  customize this style sheet.
@@ -275,7 +275,7 @@ pre.literal-block, pre.doctest-block, pre.math, pre.code {
275
275
  margin-left: 2em ;
276
276
  margin-right: 2em }
277
277
 
278
- pre.code .ln { color: grey; } /* line numbers */
278
+ pre.code .ln { color: gray; } /* line numbers */
279
279
  pre.code, code { background-color: #eeeeee }
280
280
  pre.code .comment, code .comment { color: #5C6576 }
281
281
  pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@@ -301,7 +301,7 @@ span.option {
301
301
  span.pre {
302
302
  white-space: pre }
303
303
 
304
- span.problematic {
304
+ span.problematic, pre.problematic {
305
305
  color: red }
306
306
 
307
307
  span.section-subtitle {
@@ -360,39 +360,65 @@ ul.auto-toc {
360
360
  </style>
361
361
  </head>
362
362
  <body>
363
- <div class="document" id="quality-control-stock-oca">
364
- <h1 class="title">Quality control - Stock (OCA)</h1>
363
+ <div class="document">
365
364
 
365
+
366
+ <a class="reference external image-reference" href="https://odoo-community.org/get-involved?utm_source=readme">
367
+ <img alt="Odoo Community Association" src="https://odoo-community.org/readme-banner-image" />
368
+ </a>
369
+ <div class="section" id="quality-control-stock-oca">
370
+ <h1>Quality control - Stock (OCA)</h1>
366
371
  <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
367
372
  !! This file is generated by oca-gen-addon-readme !!
368
373
  !! changes will be overwritten. !!
369
374
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
370
- !! source digest: sha256:7430252681826a0a0f9a869194458e38ac20900898f0f8ff40422f13702695ee
375
+ !! source digest: sha256:285b7214af261985e80304bbe6c39193d32e483c331e234b107ac16d93bd943e
371
376
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
372
- <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/manufacture/tree/16.0/quality_control_stock_oca"><img alt="OCA/manufacture" src="https://img.shields.io/badge/github-OCA%2Fmanufacture-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/manufacture-16-0/manufacture-16-0-quality_control_stock_oca"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/manufacture&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
377
+ <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/manufacture/tree/16.0/quality_control_stock_oca"><img alt="OCA/manufacture" src="https://img.shields.io/badge/github-OCA%2Fmanufacture-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/manufacture-16-0/manufacture-16-0-quality_control_stock_oca"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/manufacture&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
373
378
  <p>This module defines triggers that creates inspections when stock moves are done.</p>
374
379
  <p>It also adds some shortcuts on picking and lots to these inspections.</p>
375
380
  <p><strong>Table of contents</strong></p>
376
381
  <div class="contents local topic" id="contents">
377
382
  <ul class="simple">
378
- <li><a class="reference internal" href="#known-issues-roadmap" id="toc-entry-1">Known issues / Roadmap</a></li>
379
- <li><a class="reference internal" href="#bug-tracker" id="toc-entry-2">Bug Tracker</a></li>
380
- <li><a class="reference internal" href="#credits" id="toc-entry-3">Credits</a><ul>
381
- <li><a class="reference internal" href="#authors" id="toc-entry-4">Authors</a></li>
382
- <li><a class="reference internal" href="#contributors" id="toc-entry-5">Contributors</a></li>
383
- <li><a class="reference internal" href="#maintainers" id="toc-entry-6">Maintainers</a></li>
383
+ <li><a class="reference internal" href="#configuration" id="toc-entry-1">Configuration</a></li>
384
+ <li><a class="reference internal" href="#known-issues-roadmap" id="toc-entry-2">Known issues / Roadmap</a></li>
385
+ <li><a class="reference internal" href="#bug-tracker" id="toc-entry-3">Bug Tracker</a></li>
386
+ <li><a class="reference internal" href="#credits" id="toc-entry-4">Credits</a><ul>
387
+ <li><a class="reference internal" href="#authors" id="toc-entry-5">Authors</a></li>
388
+ <li><a class="reference internal" href="#contributors" id="toc-entry-6">Contributors</a></li>
389
+ <li><a class="reference internal" href="#maintainers" id="toc-entry-7">Maintainers</a></li>
384
390
  </ul>
385
391
  </li>
386
392
  </ul>
387
393
  </div>
394
+ <div class="section" id="configuration">
395
+ <h2><a class="toc-backref" href="#toc-entry-1">Configuration</a></h2>
396
+ <p>Configure a QC trigger in the product, product template, or product category to define the conditions for creating inspections:</p>
397
+ <ul class="simple">
398
+ <li>Trigger: Choose the trigger to activate the inspection process.</li>
399
+ <li>Test: Define a group of questions with valid values for the inspection.</li>
400
+ <li>Responsible: Assign a user responsible for the QC inspection.</li>
401
+ <li>Partner: Optionally specify partners to limit the test to actions involving them.</li>
402
+ <li><dl class="first docutils">
403
+ <dt>Timing: Determine when inspections are generated:</dt>
404
+ <dd><ul class="first last">
405
+ <li>Before: On picking confirmation.</li>
406
+ <li>After: On picking completion.</li>
407
+ <li>Plan Ahead: On picking confirmation, generating a non-editable plan inspection that becomes executable post-picking completion.</li>
408
+ </ul>
409
+ </dd>
410
+ </dl>
411
+ </li>
412
+ </ul>
413
+ </div>
388
414
  <div class="section" id="known-issues-roadmap">
389
- <h1><a class="toc-backref" href="#toc-entry-1">Known issues / Roadmap</a></h1>
415
+ <h2><a class="toc-backref" href="#toc-entry-2">Known issues / Roadmap</a></h2>
390
416
  <ul class="simple">
391
417
  <li>Put trigger in all languages.</li>
392
418
  </ul>
393
419
  </div>
394
420
  <div class="section" id="bug-tracker">
395
- <h1><a class="toc-backref" href="#toc-entry-2">Bug Tracker</a></h1>
421
+ <h2><a class="toc-backref" href="#toc-entry-3">Bug Tracker</a></h2>
396
422
  <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/manufacture/issues">GitHub Issues</a>.
397
423
  In case of trouble, please check there if your issue has already been reported.
398
424
  If you spotted it first, help us to smash it by providing a detailed and welcomed
@@ -400,9 +426,9 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
400
426
  <p>Do not contact contributors directly about support or help with technical issues.</p>
401
427
  </div>
402
428
  <div class="section" id="credits">
403
- <h1><a class="toc-backref" href="#toc-entry-3">Credits</a></h1>
429
+ <h2><a class="toc-backref" href="#toc-entry-4">Credits</a></h2>
404
430
  <div class="section" id="authors">
405
- <h2><a class="toc-backref" href="#toc-entry-4">Authors</a></h2>
431
+ <h3><a class="toc-backref" href="#toc-entry-5">Authors</a></h3>
406
432
  <ul class="simple">
407
433
  <li>OdooMRP team</li>
408
434
  <li>AvanzOSC</li>
@@ -411,7 +437,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
411
437
  </ul>
412
438
  </div>
413
439
  <div class="section" id="contributors">
414
- <h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
440
+ <h3><a class="toc-backref" href="#toc-entry-6">Contributors</a></h3>
415
441
  <ul class="simple">
416
442
  <li>Oihane Crucelaegui &lt;<a class="reference external" href="mailto:oihanecrucelaegi&#64;avanzosc.es">oihanecrucelaegi&#64;avanzosc.es</a>&gt;</li>
417
443
  <li>Simone Rubino &lt;<a class="reference external" href="mailto:simone.rubino&#64;agilebg.com">simone.rubino&#64;agilebg.com</a>&gt;</li>
@@ -423,12 +449,19 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
423
449
  <li>Carlos Roca</li>
424
450
  </ul>
425
451
  </li>
452
+ <li><a class="reference external" href="https://www.quartile.co">Quartile</a>:<ul>
453
+ <li>Aung Ko Ko Lin</li>
454
+ <li>Yoshi Tashiro</li>
455
+ </ul>
456
+ </li>
426
457
  </ul>
427
458
  </div>
428
459
  <div class="section" id="maintainers">
429
- <h2><a class="toc-backref" href="#toc-entry-6">Maintainers</a></h2>
460
+ <h3><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h3>
430
461
  <p>This module is maintained by the OCA.</p>
431
- <a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
462
+ <a class="reference external image-reference" href="https://odoo-community.org">
463
+ <img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
464
+ </a>
432
465
  <p>OCA, or the Odoo Community Association, is a nonprofit organization whose
433
466
  mission is to support the collaborative development of Odoo features and
434
467
  promote its widespread use.</p>
@@ -437,5 +470,6 @@ promote its widespread use.</p>
437
470
  </div>
438
471
  </div>
439
472
  </div>
473
+ </div>
440
474
  </body>
441
475
  </html>
@@ -1,6 +1,7 @@
1
1
  # Copyright 2015 Oihane Crucelaegui - AvanzOSC
2
2
  # Copyright 2018 Simone Rubino - Agile Business Group
3
3
  # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
4
+
4
5
  from odoo.tests import Form, new_test_user
5
6
  from odoo.tools import mute_logger
6
7
 
@@ -57,15 +58,25 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
57
58
  move_form.product_id = cls.product
58
59
  move_form.product_uom_qty = 2
59
60
  cls.picking1 = picking_form.save()
60
- cls.picking1.action_confirm()
61
- cls.picking1.move_ids.move_line_ids.qty_done = 1
61
+
62
+ def picking_confirmation(self):
63
+ self.picking1.action_confirm()
64
+ self.picking1.move_ids.move_line_ids.qty_done = 1
62
65
 
63
66
  @mute_logger("odoo.models.unlink")
64
67
  def test_inspection_create_for_product(self):
68
+ self.picking_confirmation()
65
69
  self.product.qc_triggers = [
66
- (0, 0, {"trigger": self.trigger.id, "test": self.test.id})
70
+ (
71
+ 0,
72
+ 0,
73
+ {"trigger": self.trigger.id, "test": self.test.id, "timing": "after"},
74
+ )
67
75
  ]
68
76
  self.picking1._action_done()
77
+ # Just so _compute_count_inspections() is triggered
78
+ # pylint: disable=W0104
79
+ self.picking1.qc_inspections_ids
69
80
  self.assertEqual(
70
81
  self.picking1.created_inspections, 1, "Only one inspection must be created"
71
82
  )
@@ -79,12 +90,71 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
79
90
  inspection.onchange_object_id()
80
91
  self.assertEqual(inspection.qty, self.picking1.move_ids.product_uom_qty)
81
92
 
93
+ @mute_logger("odoo.models.unlink")
94
+ def test_inspection_create_for_product_with_before_timing(self):
95
+ self.product.qc_triggers = [
96
+ (
97
+ 0,
98
+ 0,
99
+ {"trigger": self.trigger.id, "test": self.test.id, "timing": "before"},
100
+ )
101
+ ]
102
+ self.picking_confirmation()
103
+ # Just so _compute_count_inspections() is triggered
104
+ # pylint: disable=W0104
105
+ self.picking1.qc_inspections_ids
106
+ self.assertEqual(
107
+ self.picking1.created_inspections, 1, "Only one inspection must be created"
108
+ )
109
+ inspection = self.picking1.qc_inspections_ids[:1]
110
+ self.assertEqual(inspection.state, "ready")
111
+ self.assertEqual(inspection.qty, self.picking1.move_ids.product_uom_qty)
112
+ self.assertEqual(
113
+ inspection.test, self.test, "Wrong test picked when creating inspection."
114
+ )
115
+
116
+ @mute_logger("odoo.models.unlink")
117
+ def test_inspection_create_for_product_with_plan_ahead_timing(self):
118
+ self.product.qc_triggers = [
119
+ (
120
+ 0,
121
+ 0,
122
+ {
123
+ "trigger": self.trigger.id,
124
+ "test": self.test.id,
125
+ "timing": "plan_ahead",
126
+ },
127
+ )
128
+ ]
129
+ self.picking_confirmation()
130
+ # Just so _compute_count_inspections() is triggered
131
+ # pylint: disable=W0104
132
+ self.picking1.qc_inspections_ids
133
+ self.assertEqual(
134
+ self.picking1.created_inspections, 1, "Only one inspection must be created"
135
+ )
136
+ inspection = self.picking1.qc_inspections_ids[:1]
137
+ self.assertEqual(inspection.state, "plan")
138
+ self.assertEqual(inspection.qty, self.picking1.move_ids.product_uom_qty)
139
+ self.assertEqual(
140
+ inspection.test, self.test, "Wrong test picked when creating inspection."
141
+ )
142
+ self.picking1._action_done()
143
+ self.assertEqual(inspection.state, "ready")
144
+
82
145
  @mute_logger("odoo.models.unlink")
83
146
  def test_inspection_create_for_template(self):
147
+ self.picking_confirmation()
84
148
  self.product.product_tmpl_id.qc_triggers = [
85
- (0, 0, {"trigger": self.trigger.id, "test": self.test.id})
149
+ (
150
+ 0,
151
+ 0,
152
+ {"trigger": self.trigger.id, "test": self.test.id, "timing": "after"},
153
+ )
86
154
  ]
87
155
  self.picking1._action_done()
156
+ # pylint: disable=W0104
157
+ self.picking1.qc_inspections_ids
88
158
  self.assertEqual(
89
159
  self.picking1.created_inspections, 1, "Only one inspection must be created"
90
160
  )
@@ -96,10 +166,17 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
96
166
 
97
167
  @mute_logger("odoo.models.unlink")
98
168
  def test_inspection_create_for_category(self):
169
+ self.picking_confirmation()
99
170
  self.product.categ_id.qc_triggers = [
100
- (0, 0, {"trigger": self.trigger.id, "test": self.test.id})
171
+ (
172
+ 0,
173
+ 0,
174
+ {"trigger": self.trigger.id, "test": self.test.id, "timing": "after"},
175
+ )
101
176
  ]
102
177
  self.picking1._action_done()
178
+ # pylint: disable=W0104
179
+ self.picking1.qc_inspections_ids
103
180
  self.assertEqual(
104
181
  self.picking1.created_inspections, 1, "Only one inspection must be created"
105
182
  )
@@ -111,6 +188,7 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
111
188
 
112
189
  @mute_logger("odoo.models.unlink")
113
190
  def test_inspection_create_for_product_partner(self):
191
+ self.picking_confirmation()
114
192
  self.product.qc_triggers = [
115
193
  (
116
194
  0,
@@ -123,6 +201,8 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
123
201
  )
124
202
  ]
125
203
  self.picking1._action_done()
204
+ # pylint: disable=W0104
205
+ self.picking1.qc_inspections_ids
126
206
  self.assertEqual(
127
207
  self.picking1.created_inspections, 1, "Only one inspection must be created"
128
208
  )
@@ -134,6 +214,7 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
134
214
 
135
215
  @mute_logger("odoo.models.unlink")
136
216
  def test_inspection_create_for_template_partner(self):
217
+ self.picking_confirmation()
137
218
  self.product.product_tmpl_id.qc_triggers = [
138
219
  (
139
220
  0,
@@ -146,6 +227,8 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
146
227
  )
147
228
  ]
148
229
  self.picking1._action_done()
230
+ # pylint: disable=W0104
231
+ self.picking1.qc_inspections_ids
149
232
  self.assertEqual(
150
233
  self.picking1.created_inspections, 1, "Only one inspection must be created"
151
234
  )
@@ -157,6 +240,7 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
157
240
 
158
241
  @mute_logger("odoo.models.unlink")
159
242
  def test_inspection_create_for_category_partner(self):
243
+ self.picking_confirmation()
160
244
  self.product.categ_id.qc_triggers = [
161
245
  (
162
246
  0,
@@ -169,6 +253,8 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
169
253
  )
170
254
  ]
171
255
  self.picking1._action_done()
256
+ # pylint: disable=W0104
257
+ self.picking1.qc_inspections_ids
172
258
  self.assertEqual(
173
259
  self.picking1.created_inspections, 1, "Only one inspection must be created"
174
260
  )
@@ -180,6 +266,7 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
180
266
 
181
267
  @mute_logger("odoo.models.unlink")
182
268
  def test_inspection_create_for_product_wrong_partner(self):
269
+ self.picking_confirmation()
183
270
  self.product.qc_triggers = [
184
271
  (
185
272
  0,
@@ -192,12 +279,15 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
192
279
  )
193
280
  ]
194
281
  self.picking1._action_done()
282
+ # pylint: disable=W0104
283
+ self.picking1.qc_inspections_ids
195
284
  self.assertEqual(
196
285
  self.picking1.created_inspections, 0, "No inspection must be created"
197
286
  )
198
287
 
199
288
  @mute_logger("odoo.models.unlink")
200
289
  def test_inspection_create_for_template_wrong_partner(self):
290
+ self.picking_confirmation()
201
291
  self.product.product_tmpl_id.qc_triggers = [
202
292
  (
203
293
  0,
@@ -210,12 +300,15 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
210
300
  )
211
301
  ]
212
302
  self.picking1._action_done()
303
+ # pylint: disable=W0104
304
+ self.picking1.qc_inspections_ids
213
305
  self.assertEqual(
214
306
  self.picking1.created_inspections, 0, "No inspection must be created"
215
307
  )
216
308
 
217
309
  @mute_logger("odoo.models.unlink")
218
310
  def test_inspection_create_for_category_wrong_partner(self):
311
+ self.picking_confirmation()
219
312
  self.product.categ_id.qc_triggers = [
220
313
  (
221
314
  0,
@@ -228,12 +321,15 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
228
321
  )
229
322
  ]
230
323
  self.picking1._action_done()
324
+ # pylint: disable=W0104
325
+ self.picking1.qc_inspections_ids
231
326
  self.assertEqual(
232
327
  self.picking1.created_inspections, 0, "No inspection must be created"
233
328
  )
234
329
 
235
330
  @mute_logger("odoo.models.unlink")
236
331
  def test_inspection_create_only_one(self):
332
+ self.picking_confirmation()
237
333
  self.product.qc_triggers = [
238
334
  (0, 0, {"trigger": self.trigger.id, "test": self.test.id})
239
335
  ]
@@ -241,6 +337,8 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
241
337
  (0, 0, {"trigger": self.trigger.id, "test": self.test.id})
242
338
  ]
243
339
  self.picking1._action_done()
340
+ # pylint: disable=W0104
341
+ self.picking1.qc_inspections_ids
244
342
  self.assertEqual(
245
343
  self.picking1.created_inspections, 1, "Only one inspection must be created"
246
344
  )
@@ -293,6 +391,7 @@ class TestQualityControlStockOca(TestQualityControlOcaBase):
293
391
  self.assertEqual(self.inspection1.picking_id, self.picking1)
294
392
 
295
393
  def test_qc_inspection_stock_move(self):
394
+ self.picking_confirmation()
296
395
  self.inspection1.write(
297
396
  {
298
397
  "name": self.picking1.move_ids[:1]._name + "inspection",
@@ -7,6 +7,9 @@
7
7
  <field name="res_model">qc.inspection</field>
8
8
  <field name="view_mode">tree,form</field>
9
9
  <field name="domain">[('picking_id', '=', active_id)]</field>
10
+ <field
11
+ name="context"
12
+ >{'default_object_id': 'stock.picking,' + active_id}</field>
10
13
  </record>
11
14
  <record id="action_qc_inspection_per_picking_done" model="ir.actions.act_window">
12
15
  <field name="name">Quality inspection from picking done</field>
@@ -15,6 +18,9 @@
15
18
  <field
16
19
  name="domain"
17
20
  >[('picking_id', '=', active_id), ('state', 'not in', ['draft', 'waiting'])]</field>
21
+ <field
22
+ name="context"
23
+ >{'default_object_id': 'stock.picking,' + active_id}</field>
18
24
  </record>
19
25
  <record id="action_qc_inspection_per_picking_passed" model="ir.actions.act_window">
20
26
  <field name="name">Quality inspection from picking passed</field>
@@ -23,6 +29,9 @@
23
29
  <field
24
30
  name="domain"
25
31
  >[('picking_id', '=', active_id), ('state', '=', 'success')]</field>
32
+ <field
33
+ name="context"
34
+ >{'default_object_id': 'stock.picking,' + active_id}</field>
26
35
  </record>
27
36
  <record id="action_qc_inspection_per_picking_failed" model="ir.actions.act_window">
28
37
  <field name="name">Quality inspections from picking failed</field>
@@ -31,6 +40,9 @@
31
40
  <field
32
41
  name="domain"
33
42
  >[('picking_id', '=', active_id), ('state', '=', 'failed')]</field>
43
+ <field
44
+ name="context"
45
+ >{'default_object_id': 'stock.picking,' + active_id}</field>
34
46
  </record>
35
47
  <record model="ir.ui.view" id="stock_picking_qc_view">
36
48
  <field name="name">stock.picking.qc.view</field>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-quality_control_stock_oca
3
- Version: 16.0.1.0.0.10
3
+ Version: 16.0.1.2.0
4
4
  Summary: Quality control - Stock (OCA)
5
5
  Home-page: https://github.com/OCA/manufacture
6
6
  Author: OdooMRP team, AvanzOSC, Serv. Tecnol. Avanzados - Pedro M. Baeza, Agile Business Group, Odoo Community Association (OCA)
@@ -14,6 +14,10 @@ Requires-Python: >=3.10
14
14
  Requires-Dist: odoo-addon-quality-control-oca<16.1dev,>=16.0dev
15
15
  Requires-Dist: odoo<16.1dev,>=16.0a
16
16
 
17
+ .. image:: https://odoo-community.org/readme-banner-image
18
+ :target: https://odoo-community.org/get-involved?utm_source=readme
19
+ :alt: Odoo Community Association
20
+
17
21
  =============================
18
22
  Quality control - Stock (OCA)
19
23
  =============================
@@ -23,13 +27,13 @@ Quality control - Stock (OCA)
23
27
  !! This file is generated by oca-gen-addon-readme !!
24
28
  !! changes will be overwritten. !!
25
29
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
26
- !! source digest: sha256:7430252681826a0a0f9a869194458e38ac20900898f0f8ff40422f13702695ee
30
+ !! source digest: sha256:285b7214af261985e80304bbe6c39193d32e483c331e234b107ac16d93bd943e
27
31
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
28
32
 
29
33
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
30
34
  :target: https://odoo-community.org/page/development-status
31
35
  :alt: Beta
32
- .. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
36
+ .. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
33
37
  :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
34
38
  :alt: License: AGPL-3
35
39
  .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmanufacture-lightgray.png?logo=github
@@ -53,6 +57,20 @@ It also adds some shortcuts on picking and lots to these inspections.
53
57
  .. contents::
54
58
  :local:
55
59
 
60
+ Configuration
61
+ =============
62
+
63
+ Configure a QC trigger in the product, product template, or product category to define the conditions for creating inspections:
64
+
65
+ * Trigger: Choose the trigger to activate the inspection process.
66
+ * Test: Define a group of questions with valid values for the inspection.
67
+ * Responsible: Assign a user responsible for the QC inspection.
68
+ * Partner: Optionally specify partners to limit the test to actions involving them.
69
+ * Timing: Determine when inspections are generated:
70
+ * Before: On picking confirmation.
71
+ * After: On picking completion.
72
+ * Plan Ahead: On picking confirmation, generating a non-editable plan inspection that becomes executable post-picking completion.
73
+
56
74
  Known issues / Roadmap
57
75
  ======================
58
76
 
@@ -92,6 +110,11 @@ Contributors
92
110
  * Pedro M. Baeza
93
111
  * Carlos Roca
94
112
 
113
+ * `Quartile <https://www.quartile.co>`_:
114
+
115
+ * Aung Ko Ko Lin
116
+ * Yoshi Tashiro
117
+
95
118
  Maintainers
96
119
  ~~~~~~~~~~~
97
120
 
@@ -1,6 +1,6 @@
1
- odoo/addons/quality_control_stock_oca/README.rst,sha256=a7HyZ7LysbKD8PO_TFvI4RR9e0YUh3J7pabwjvxPAGk,3407
1
+ odoo/addons/quality_control_stock_oca/README.rst,sha256=HNE2pL_gAbiBCG7j2kPwS2cQrnA_pEpszdS7qojDPno,4360
2
2
  odoo/addons/quality_control_stock_oca/__init__.py,sha256=9AmVrugo-4RwxFv5RtciHQyj_eQwAZj8d_TT44vxLJE,504
3
- odoo/addons/quality_control_stock_oca/__manifest__.py,sha256=auG24sJKJB2AsM-Y8XsdINtzEppOYsoKU_pnVby2AYU,883
3
+ odoo/addons/quality_control_stock_oca/__manifest__.py,sha256=NmH4-U-elGM8rpyfBjtwdfgq6QohgTlG4ND5Q6HFloA,883
4
4
  odoo/addons/quality_control_stock_oca/i18n/ca.po,sha256=R1s7jJCe0Gh8E39pmdr1nfVFkw7IBLQI5DZpRtsLIH8,6084
5
5
  odoo/addons/quality_control_stock_oca/i18n/de.po,sha256=NPN2YapKjudiSK4fejhh78ybJyjjtuqQ0xeY-Tzmz2E,6972
6
6
  odoo/addons/quality_control_stock_oca/i18n/el_GR.po,sha256=elsAV-RfZ4F-VB_FrvihwG0X-7Wb2GGeZN9pojHthnE,6097
@@ -22,7 +22,7 @@ odoo/addons/quality_control_stock_oca/i18n/nl.po,sha256=GXj_8kRaZqhpJQ-MVMUgSH97
22
22
  odoo/addons/quality_control_stock_oca/i18n/nl_NL.po,sha256=xcwiN2sCQS3W1P0M5aE5Tp-W9G8ZBCq8krHeSf6Fae8,6179
23
23
  odoo/addons/quality_control_stock_oca/i18n/pt.po,sha256=Ly04eCrZzExYkEKxfUPuXRESMWf-KaKMXt4vW3bUKtI,6164
24
24
  odoo/addons/quality_control_stock_oca/i18n/pt_BR.po,sha256=LCwftOcSunYzdQ6gj07WANbZ69yn4eZ1C8Snr-CzWMo,7326
25
- odoo/addons/quality_control_stock_oca/i18n/quality_control_stock_oca.pot,sha256=IOwQn9wLbK-JEeWXkSMP_H_AnozSWm22ouKW58dvGTg,5797
25
+ odoo/addons/quality_control_stock_oca/i18n/quality_control_stock_oca.pot,sha256=cm_O1Zb_qZRCXfQqpWyUWBqMqF23vc-Grt0R6sdizqY,5930
26
26
  odoo/addons/quality_control_stock_oca/i18n/ro.po,sha256=jOpxXvRpgwzQd9SWiRQLFpJxLbQcWBmpQMdSWi8OM-E,6206
27
27
  odoo/addons/quality_control_stock_oca/i18n/ru.po,sha256=fKaDRzsDEDaOocdBAlGyaUDyhj-V1PyY0k6jgqRLMU0,6305
28
28
  odoo/addons/quality_control_stock_oca/i18n/sk.po,sha256=rObaplMYi1YFCfDD-xW-RDjq1AIHCDNGgvBW-qmeJiA,6187
@@ -31,24 +31,26 @@ odoo/addons/quality_control_stock_oca/i18n/tr.po,sha256=rrvrD74lrekjubZBpzwyAFYi
31
31
  odoo/addons/quality_control_stock_oca/i18n/tr_TR.po,sha256=-TPDLS0tnjF1hDRXTataCTiZiarURB-7nkUZlCk5Xr0,6192
32
32
  odoo/addons/quality_control_stock_oca/i18n/vi_VN.po,sha256=pCaoaXZ4TjjTpuCI5DfBbfXI54Cplr2K75inuZC2Q3w,6357
33
33
  odoo/addons/quality_control_stock_oca/i18n/zh_CN.po,sha256=MEjTg3DLIz13vxqT0FNhsrD9IIywWI_BKx0zMqHaCv0,6168
34
- odoo/addons/quality_control_stock_oca/models/__init__.py,sha256=5W6REeWDL4dOmC9jP6Re4A8OjdXBgFl12DYLtxyTvNU,215
35
- odoo/addons/quality_control_stock_oca/models/qc_inspection.py,sha256=0k_VxBirjYhC12g0U2ESTpRIw6hbQVpPt5oFgCgjeUE,3295
34
+ odoo/addons/quality_control_stock_oca/models/__init__.py,sha256=U3gfut3nP1DwkaVP5DfGQ1DI5cuJNjJr301h1aXkjvs,240
35
+ odoo/addons/quality_control_stock_oca/models/qc_inspection.py,sha256=Vd5WUAmQ1FC3HRB8uM0Gp2Dro1B1ZtHPOfR3lB3e7h8,3505
36
36
  odoo/addons/quality_control_stock_oca/models/qc_trigger.py,sha256=WzRANS7KMEGStII3wlJ-x3zCn9-tnP890VfrDlcydAs,391
37
- odoo/addons/quality_control_stock_oca/models/stock_picking.py,sha256=bVjsKurJU7s2xlxgqyxKgt_APT3KKVs3mKH1Pea3OOY,3236
37
+ odoo/addons/quality_control_stock_oca/models/stock_move.py,sha256=_g0gpUauH7Ws8Gwr_eOLNk6OvVfSupHOhmy_4jO5Qqg,2443
38
+ odoo/addons/quality_control_stock_oca/models/stock_picking.py,sha256=Ymf0vIywAYQb5V6crah6jcaKzDzoUmWh5kj3Vy3aoOA,3522
38
39
  odoo/addons/quality_control_stock_oca/models/stock_picking_type.py,sha256=A9R0O24GM4hRNv3k-Hi9kHE2kixoyH8vgk8qQytkOeA,1361
39
40
  odoo/addons/quality_control_stock_oca/models/stock_production_lot.py,sha256=wTlHrBL7F2TyTY0CMen-8JW3TYnI5Wup6iEYhEoCe3o,1923
40
- odoo/addons/quality_control_stock_oca/readme/CONTRIBUTORS.rst,sha256=SOMUd5YEC6mcdjdBxWciyPwJKj4zNkeYvJmltr742A8,312
41
+ odoo/addons/quality_control_stock_oca/readme/CONFIGURE.rst,sha256=2usAv4aea42l7y1dgoPIHHJ19E6OFIXPGHyaXIaDvyg,678
42
+ odoo/addons/quality_control_stock_oca/readme/CONTRIBUTORS.rst,sha256=dg_FVJYVQvHhTJMa_at0sMWtsT2GCFtSipcpDI0J0Cc,392
41
43
  odoo/addons/quality_control_stock_oca/readme/DESCRIPTION.rst,sha256=AejtLJR6otMvuF5R56p6vXwDaMWE1dW3lg6tLEIyKsQ,152
42
44
  odoo/addons/quality_control_stock_oca/readme/ROADMAP.rst,sha256=uLH6_pi5ctOOlycssnwF2ggGwjYJMOmfzmCoTsFMonA,32
43
45
  odoo/addons/quality_control_stock_oca/static/description/icon.png,sha256=x3L6LkPBxlV3mIf1zIvHJZloOgNUDiOBOaFgqggexoo,9215
44
- odoo/addons/quality_control_stock_oca/static/description/index.html,sha256=P7aboocbBx7qRw9YPlqKXL66Z-sRY4PGAZzMNtMZZBY,13372
46
+ odoo/addons/quality_control_stock_oca/static/description/index.html,sha256=wOe-wPsrzksGnfY600tTXAhbHvdqp0fsRcy3YxXXbQ8,14818
45
47
  odoo/addons/quality_control_stock_oca/tests/__init__.py,sha256=DoOTjy4_SOM0tQiBUfjxHikooStDz_NrSluVnfx07bk,107
46
- odoo/addons/quality_control_stock_oca/tests/test_quality_control_stock.py,sha256=IgAw4ZgeNb-ixx_KH1B6CG9IdSbtlwMRbzZ3GS-1giM,11608
48
+ odoo/addons/quality_control_stock_oca/tests/test_quality_control_stock.py,sha256=qeuRcK7p43ibBYSMePY808jFQZhkbRZhu1F4hvw_1jU,15087
47
49
  odoo/addons/quality_control_stock_oca/views/qc_inspection_view.xml,sha256=zERew9HMxyarqS9m41JjPnPLoadTx-L5fys9iO3ZP4Q,3936
48
50
  odoo/addons/quality_control_stock_oca/views/qc_trigger_view.xml,sha256=Iva-jto2Yr6qcIsSFnVdugjhUFfERUzPeKwWnpfsJkQ,527
49
- odoo/addons/quality_control_stock_oca/views/stock_picking_view.xml,sha256=jXaLi5xFle8cDNWYqmQduu_HNpGWMPAyBO2RW887s5E,4015
51
+ odoo/addons/quality_control_stock_oca/views/stock_picking_view.xml,sha256=2pU1XhfDTXpv5LYrGSX-RjI2P2lO-fUZ8YogMW5jm4s,4459
50
52
  odoo/addons/quality_control_stock_oca/views/stock_production_lot_view.xml,sha256=LYFOchJ8n89vVy4C840k8uedbXPH3KkqhtjcfwUws6M,3946
51
- odoo_addon_quality_control_stock_oca-16.0.1.0.0.10.dist-info/METADATA,sha256=d7nGXvri65vQxX6JdyyjavoYLwf_GCgZSDRI8oHRWGA,4078
52
- odoo_addon_quality_control_stock_oca-16.0.1.0.0.10.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
53
- odoo_addon_quality_control_stock_oca-16.0.1.0.0.10.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
54
- odoo_addon_quality_control_stock_oca-16.0.1.0.0.10.dist-info/RECORD,,
53
+ odoo_addon_quality_control_stock_oca-16.0.1.2.0.dist-info/METADATA,sha256=eT6Ru87vEoM4x8tBJXRpwRhkRgM2B72tGuErxnvDudg,5028
54
+ odoo_addon_quality_control_stock_oca-16.0.1.2.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
55
+ odoo_addon_quality_control_stock_oca-16.0.1.2.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
56
+ odoo_addon_quality_control_stock_oca-16.0.1.2.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.44.0)
2
+ Generator: bdist_wheel (0.45.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5