Skip to content

Commit 2c04c43

Browse files
committed
Merge PR #3674 into 16.0
Signed-off-by HaraldPanten
2 parents 27012aa + 735dfe4 commit 2c04c43

File tree

3 files changed

+34
-10
lines changed

3 files changed

+34
-10
lines changed

sale_quotation_number/__manifest__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
{
77
"name": "Sale Quotation Numeration",
88
"summary": "Different sequence for sale quotations",
9-
"version": "16.0.1.1.1",
9+
"version": "16.0.1.1.2",
1010
"category": "Sales Management",
1111
"website": "https://github.com/OCA/sale-workflow",
1212
"author": "Elico Corp, "
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright 2023 Manuel Regidor <manuel.regidor@sygel.es> (Sygel)
2+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
3+
4+
import odoo
5+
6+
7+
def migrate(cr, version):
8+
env = odoo.api.Environment(cr, odoo.SUPERUSER_ID, {})
9+
sequence = env["ir.sequence"].search([("code", "=", "sale.quotation")], limit=1)
10+
orders = (
11+
env["sale.order"]
12+
.search(
13+
[
14+
("state", "in", ["draft", "sent"]),
15+
("company_id.keep_name_so", "=", False),
16+
]
17+
)
18+
.filtered(lambda a: a.name[: len(sequence.prefix)] == sequence.prefix)
19+
)
20+
orders.write({"quotation_seq_used": True})

sale_quotation_number/models/sale_order.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,23 @@
44
# © 2020 Manuel Regidor <manuel.regidor@sygel.es>
55
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
66

7-
from odoo import api, models
7+
from odoo import api, fields, models
88

99

1010
class SaleOrder(models.Model):
1111
_inherit = "sale.order"
1212

13+
quotation_seq_used = fields.Boolean(
14+
string="Quotation Sequence Used", default=False, copy=False, readonly=True
15+
)
16+
1317
@api.model_create_multi
1418
def create(self, vals_list):
1519
for vals in vals_list:
1620
if self.is_using_quotation_number(vals):
1721
company_id = vals.get("company_id", self.env.company.id)
1822
sequence = self.with_company(company_id).get_quotation_seq()
19-
vals["name"] = sequence or "/"
23+
vals.update({"name": sequence or "/", "quotation_seq_used": True})
2024
return super().create(vals_list)
2125

2226
@api.model
@@ -42,23 +46,23 @@ def copy(self, default=None):
4246
def get_quotation_seq(self):
4347
return self.env["ir.sequence"].next_by_code("sale.quotation")
4448

49+
def get_sale_order_seq(self):
50+
self.ensure_one()
51+
return self.env["ir.sequence"].next_by_code("sale.order")
52+
4553
def action_confirm(self):
4654
sequence = self.env["ir.sequence"].search(
4755
[("code", "=", "sale.quotation")], limit=1
4856
)
4957
for order in self:
50-
if sequence and self.name[: len(sequence.prefix)] != sequence.prefix:
58+
if not self.quotation_seq_used:
5159
continue
5260
if order.state not in ("draft", "sent") or order.company_id.keep_name_so:
5361
continue
5462
if order.origin and order.origin != "":
5563
quo = order.origin + ", " + order.name
5664
else:
5765
quo = order.name
58-
sequence = (
59-
self.with_company(order.company_id.id)
60-
.env["ir.sequence"]
61-
.next_by_code("sale.order")
62-
)
63-
order.write({"origin": quo, "name": sequence})
66+
sequence = order.with_company(order.company_id.id).get_sale_order_seq()
67+
order.write({"origin": quo, "name": sequence, "quotation_seq_used": False})
6468
return super().action_confirm()

0 commit comments

Comments
 (0)