Skip to content

Commit c7ed417

Browse files
committed
[ADD] l10n_it_delivery_note_batch: aggiunta PR OCA#4504
1 parent f6d97c7 commit c7ed417

16 files changed

+874
-0
lines changed
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
===================================================
2+
ITA - Documento di trasporto - Prelievo raggruppato
3+
===================================================
4+
5+
..
6+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7+
!! This file is generated by oca-gen-addon-readme !!
8+
!! changes will be overwritten. !!
9+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10+
!! source digest: sha256:6500f0979c9b55298edbf0666512d100ac847d87f792b2699294c1acfe3ca179
11+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12+
13+
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
14+
:target: https://odoo-community.org/page/development-status
15+
:alt: Beta
16+
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
17+
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
18+
:alt: License: AGPL-3
19+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--italy-lightgray.png?logo=github
20+
:target: https://github.com/OCA/l10n-italy/tree/18.0/l10n_it_delivery_note_batch
21+
:alt: OCA/l10n-italy
22+
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
23+
:target: https://translation.odoo-community.org/projects/l10n-italy-18-0/l10n-italy-18-0-l10n_it_delivery_note_batch
24+
:alt: Translate me on Weblate
25+
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
26+
:target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-italy&target_branch=18.0
27+
:alt: Try me on Runboat
28+
29+
|badge1| |badge2| |badge3| |badge4| |badge5|
30+
31+
**Italiano**
32+
33+
Questo modulo permette la creazione di DDT a partire da gruppi di
34+
prelievi.
35+
36+
**English**
37+
38+
This module creates delivery documents from picking groups.
39+
40+
**Table of contents**
41+
42+
.. contents::
43+
:local:
44+
45+
Usage
46+
=====
47+
48+
**Italiano** Da fare.
49+
50+
**English** TBD
51+
52+
Bug Tracker
53+
===========
54+
55+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/l10n-italy/issues>`_.
56+
In case of trouble, please check there if your issue has already been reported.
57+
If you spotted it first, help us to smash it by providing a detailed and welcomed
58+
`feedback <https://github.com/OCA/l10n-italy/issues/new?body=module:%20l10n_it_delivery_note_batch%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
59+
60+
Do not contact contributors directly about support or help with technical issues.
61+
62+
Credits
63+
=======
64+
65+
Authors
66+
-------
67+
68+
* Marco Colombo
69+
70+
Contributors
71+
------------
72+
73+
- Marco Colombo <[email protected]>
74+
- Andrea Piovesana <[email protected]>
75+
- Francesco Apruzzese <[email protected]>
76+
77+
Maintainers
78+
-----------
79+
80+
This module is maintained by the OCA.
81+
82+
.. image:: https://odoo-community.org/logo.png
83+
:alt: Odoo Community Association
84+
:target: https://odoo-community.org
85+
86+
OCA, or the Odoo Community Association, is a nonprofit organization whose
87+
mission is to support the collaborative development of Odoo features and
88+
promote its widespread use.
89+
90+
.. |maintainer-MarcoCalcagni| image:: https://github.com/MarcoCalcagni.png?size=40px
91+
:target: https://github.com/MarcoCalcagni
92+
:alt: MarcoCalcagni
93+
.. |maintainer-TheMule71| image:: https://github.com/TheMule71.png?size=40px
94+
:target: https://github.com/TheMule71
95+
:alt: TheMule71
96+
.. |maintainer-Borruso| image:: https://github.com/Borruso.png?size=40px
97+
:target: https://github.com/Borruso
98+
:alt: Borruso
99+
.. |maintainer-aleuffre| image:: https://github.com/aleuffre.png?size=40px
100+
:target: https://github.com/aleuffre
101+
:alt: aleuffre
102+
.. |maintainer-PicchiSeba| image:: https://github.com/PicchiSeba.png?size=40px
103+
:target: https://github.com/PicchiSeba
104+
:alt: PicchiSeba
105+
.. |maintainer-renda-dev| image:: https://github.com/renda-dev.png?size=40px
106+
:target: https://github.com/renda-dev
107+
:alt: renda-dev
108+
109+
Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:
110+
111+
|maintainer-MarcoCalcagni| |maintainer-TheMule71| |maintainer-Borruso| |maintainer-aleuffre| |maintainer-PicchiSeba| |maintainer-renda-dev|
112+
113+
This module is part of the `OCA/l10n-italy <https://github.com/OCA/l10n-italy/tree/18.0/l10n_it_delivery_note_batch>`_ project on GitHub.
114+
115+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import models
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Copyright 2020 Marco Colombo <[email protected]>
2+
# @author: Marco Colombo <[email protected]>
3+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
4+
5+
# noinspection PyStatementEffect
6+
{
7+
"name": "ITA - Documento di trasporto - Prelievo raggruppato",
8+
"summary": "Crea i DDT partendo da gruppi di prelievi",
9+
"author": "Marco Colombo, Odoo Community Association (OCA)",
10+
"website": "https://github.com/OCA/l10n-italy",
11+
"version": "18.0.1.0.0",
12+
"category": "Localization/Italy",
13+
"license": "AGPL-3",
14+
"maintainers": [
15+
"MarcoCalcagni",
16+
"TheMule71",
17+
"Borruso",
18+
"aleuffre",
19+
"PicchiSeba",
20+
"renda-dev",
21+
],
22+
"depends": [
23+
"stock",
24+
"stock_picking_batch",
25+
"l10n_it_delivery_note",
26+
],
27+
"data": [
28+
"views/stock_picking_batch_views.xml",
29+
"views/stock_picking_views.xml",
30+
],
31+
"auto_install": True,
32+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * l10n_it_delivery_note_batch
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 14.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"POT-Creation-Date: 2020-10-15 08:41+0000\n"
10+
"PO-Revision-Date: 2024-02-27 13:35+0000\n"
11+
"Last-Translator: mymage <[email protected]>\n"
12+
"Language-Team: \n"
13+
"Language: it\n"
14+
"MIME-Version: 1.0\n"
15+
"Content-Type: text/plain; charset=UTF-8\n"
16+
"Content-Transfer-Encoding: \n"
17+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
18+
"X-Generator: Weblate 4.17\n"
19+
20+
#. module: l10n_it_delivery_note_batch
21+
#: model:ir.model.fields,field_description:l10n_it_delivery_note_batch.field_stock_picking_batch__all_pickings_have_delivery_note
22+
msgid "All Pickings Have Delivery Note"
23+
msgstr "Tutti i prelievi hanno note di consegna"
24+
25+
#. module: l10n_it_delivery_note_batch
26+
#: model:ir.model.fields,field_description:l10n_it_delivery_note_batch.field_stock_delivery_note__stock_picking_batch_id
27+
msgid "Batch Picking"
28+
msgstr "Prelievo raggruppato"
29+
30+
#. module: l10n_it_delivery_note_batch
31+
#: model:ir.model,name:l10n_it_delivery_note_batch.model_stock_picking_batch
32+
msgid "Batch Transfer"
33+
msgstr "Trasferimento raggruppato"
34+
35+
#. module: l10n_it_delivery_note_batch
36+
#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note_batch.stock_picking_batch_form_view
37+
msgid "Create DNs"
38+
msgstr "Crea DdT"
39+
40+
#. module: l10n_it_delivery_note_batch
41+
#: model:ir.model,name:l10n_it_delivery_note_batch.model_stock_delivery_note
42+
msgid "Delivery Note"
43+
msgstr "DdT"
44+
45+
#. module: l10n_it_delivery_note_batch
46+
#: model:ir.model.fields,field_description:l10n_it_delivery_note_batch.field_stock_picking_batch__delivery_note_count
47+
msgid "Delivery Note Count"
48+
msgstr "Conto DdT"
49+
50+
#. module: l10n_it_delivery_note_batch
51+
#: model:ir.model.fields,field_description:l10n_it_delivery_note_batch.field_stock_picking_batch__delivery_note_ids
52+
#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note_batch.stock_picking_batch_form_view
53+
msgid "Delivery Notes"
54+
msgstr "DdT"
55+
56+
#~ msgid "Display Name"
57+
#~ msgstr "Nome visualizzato"
58+
59+
#~ msgid "ID"
60+
#~ msgstr "ID"
61+
62+
#~ msgid "Last Modified on"
63+
#~ msgstr "Ultima modifica il"
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * l10n_it_delivery_note_batch
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 16.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"Last-Translator: \n"
10+
"Language-Team: \n"
11+
"MIME-Version: 1.0\n"
12+
"Content-Type: text/plain; charset=UTF-8\n"
13+
"Content-Transfer-Encoding: \n"
14+
"Plural-Forms: \n"
15+
16+
#. module: l10n_it_delivery_note_batch
17+
#: model:ir.model.fields,field_description:l10n_it_delivery_note_batch.field_stock_picking_batch__all_pickings_have_delivery_note
18+
msgid "All Pickings Have Delivery Note"
19+
msgstr ""
20+
21+
#. module: l10n_it_delivery_note_batch
22+
#: model:ir.model.fields,field_description:l10n_it_delivery_note_batch.field_stock_delivery_note__stock_picking_batch_id
23+
msgid "Batch Picking"
24+
msgstr ""
25+
26+
#. module: l10n_it_delivery_note_batch
27+
#: model:ir.model,name:l10n_it_delivery_note_batch.model_stock_picking_batch
28+
msgid "Batch Transfer"
29+
msgstr ""
30+
31+
#. module: l10n_it_delivery_note_batch
32+
#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note_batch.stock_picking_batch_form_view
33+
msgid "Create DNs"
34+
msgstr ""
35+
36+
#. module: l10n_it_delivery_note_batch
37+
#: model:ir.model,name:l10n_it_delivery_note_batch.model_stock_delivery_note
38+
msgid "Delivery Note"
39+
msgstr ""
40+
41+
#. module: l10n_it_delivery_note_batch
42+
#: model:ir.model.fields,field_description:l10n_it_delivery_note_batch.field_stock_picking_batch__delivery_note_count
43+
msgid "Delivery Note Count"
44+
msgstr ""
45+
46+
#. module: l10n_it_delivery_note_batch
47+
#: model:ir.model.fields,field_description:l10n_it_delivery_note_batch.field_stock_picking_batch__delivery_note_ids
48+
#: model_terms:ir.ui.view,arch_db:l10n_it_delivery_note_batch.stock_picking_batch_form_view
49+
msgid "Delivery Notes"
50+
msgstr ""
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
from . import stock_delivery_note
2+
from . import stock_picking_batch
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Copyright (c) 2020 Marco Colombo
2+
# @author: Marco Colombo <[email protected]>
3+
4+
from odoo import fields, models
5+
6+
7+
class StockDeliveryNote(models.Model):
8+
_inherit = "stock.delivery.note"
9+
10+
stock_picking_batch_id = fields.Many2one(
11+
"stock.picking.batch",
12+
string="Batch Picking",
13+
)
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Part of Odoo. See LICENSE file for full copyright and licensing details.
2+
3+
from odoo import fields, models
4+
5+
6+
class StockPickingBatch(models.Model):
7+
_inherit = "stock.picking.batch"
8+
9+
delivery_note_ids = fields.One2many(
10+
"stock.delivery.note",
11+
"stock_picking_batch_id",
12+
string="Delivery Notes",
13+
copy=False,
14+
)
15+
16+
delivery_note_count = fields.Integer(compute="_compute_delivery_note_count")
17+
all_pickings_have_delivery_note = fields.Boolean(
18+
compute="_compute_all_pickings_have_delivery_note"
19+
)
20+
21+
def _compute_delivery_note_count(self):
22+
for rec in self:
23+
rec.delivery_note_count = len(rec.delivery_note_ids)
24+
25+
def _compute_all_pickings_have_delivery_note(self):
26+
for rec in self:
27+
rec.all_pickings_have_delivery_note = all(
28+
p.delivery_note_id for p in rec.picking_ids
29+
)
30+
31+
def create_delivery_notes(self, **kwargs):
32+
for rec in self:
33+
if rec.state != "done":
34+
# TODO check state - when are we allowed to
35+
# create draft delivery notes?
36+
pass
37+
38+
# select only pickings that don't already have a delivery note
39+
# TODO state check on individual pickings?
40+
pickings = rec.mapped("picking_ids").search(
41+
[("delivery_note_id", "=", False), ("batch_id", "=", rec.id)]
42+
)
43+
44+
# poor man's group by - group by homogeneous pickings
45+
todo_list = {}
46+
for p in pickings:
47+
key = tuple(p.id for p in p.get_partners())
48+
todo_list[key] = todo_list.get(key, self.env["stock.picking"]) | p
49+
type_id = self.env["stock.delivery.note.type"].search(
50+
[("code", "=", rec.picking_type_id.code)], limit=1
51+
)
52+
53+
for partner_ids, pickings in todo_list.items():
54+
dn = self.env["stock.delivery.note"].create(
55+
{
56+
"partner_sender_id": partner_ids[0],
57+
"partner_id": partner_ids[1],
58+
"partner_shipping_id": partner_ids[1],
59+
"stock_picking_batch_id": rec.id,
60+
"type_id": type_id.id,
61+
}
62+
)
63+
pickings.write({"delivery_note_id": dn.id})
64+
65+
return self.goto_delivery_notes(**kwargs)
66+
67+
def goto_delivery_notes(self, **kwargs):
68+
delivery_notes = self.mapped("delivery_note_ids")
69+
action = self.env["ir.actions.act_window"]._for_xml_id(
70+
"l10n_it_delivery_note.stock_delivery_note_action"
71+
)
72+
action.update(kwargs)
73+
74+
if len(delivery_notes) > 1:
75+
action["domain"] = [("id", "in", delivery_notes.ids)]
76+
77+
elif len(delivery_notes) == 1:
78+
action["views"] = [
79+
(
80+
self.env.ref(
81+
"l10n_it_delivery_note.stock_delivery_note_form_view"
82+
).id,
83+
"form",
84+
)
85+
]
86+
action["res_id"] = delivery_notes.id
87+
88+
else:
89+
action = {"type": "ir.actions.act_window_close"}
90+
91+
return action
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[build-system]
2+
requires = ["whool"]
3+
build-backend = "whool.buildapi"
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
- Marco Colombo \<<[email protected]>\>
2+
- Andrea Piovesana \<<[email protected]>\>
3+
- Francesco Apruzzese \<<[email protected]>\>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
**Italiano**
2+
3+
Questo modulo permette la creazione di DDT a partire da gruppi di
4+
prelievi.
5+
6+
**English**
7+
8+
This module creates delivery documents from picking groups.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
**Italiano** Da fare.
2+
3+
**English** TBD
Loading

0 commit comments

Comments
 (0)