Skip to content

Commit

Permalink
[16.0][IMP]: sale_blanker_order_filter_date: As many sales orders wil…
Browse files Browse the repository at this point in the history
…l be created as different scheduled data are found in the lines of the sales order creation wizard.
  • Loading branch information
alfredoavanzosc authored and anajuaristi committed Sep 27, 2024
1 parent e0804c4 commit 6396d5b
Show file tree
Hide file tree
Showing 11 changed files with 133 additions and 28 deletions.
5 changes: 2 additions & 3 deletions sale_blanket_order_filter_date/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@ Sale blanket order filter date
* When you press the "create order" button, load those lines into the wizard
that have scheduled data equal null or scheduled date is between the two new
dates created if they are reported.
* When the sales order is created, the minimum scheduled date will be taken
from the wizard lines, and said date will be entered in the delivery date
field of said sales order.
* As many sales orders will be created as different scheduled data are found in
the lines of the sales order creation wizard.

Bug Tracker
===========
Expand Down
5 changes: 2 additions & 3 deletions sale_blanket_order_filter_date/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,10 @@
"license": "AGPL-3",
"author": "AvanzOSC",
"website": "https://github.com/avanzosc/sale-addons",
"depends": [
"sale_blanket_order",
],
"depends": ["sale_blanket_order", "sale_order_line_date"],
"data": [
"views/sale_blanket_order_views.xml",
"wizard/create_sale_order_views.xml",
],
"installable": True,
}
16 changes: 14 additions & 2 deletions sale_blanket_order_filter_date/i18n/ca_ES.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 05:23+0000\n"
"PO-Revision-Date: 2024-09-25 05:23+0000\n"
"POT-Creation-Date: 2024-09-27 06:31+0000\n"
"PO-Revision-Date: 2024-09-27 06:31+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
Expand Down Expand Up @@ -39,3 +39,15 @@ msgstr ""
#: model:ir.model.fields,field_description:sale_blanket_order_filter_date.field_sale_blanket_order_wizard__line_ids
msgid "Lines"
msgstr ""

#. module: sale_blanket_order_filter_date
#: model:ir.model,name:sale_blanket_order_filter_date.model_sale_order_line
msgid "Sales Order Line"
msgstr "Línia comanda de venda"

#. module: sale_blanket_order_filter_date
#. odoo-python
#: code:addons/sale_blanket_order_filter_date/wizard/create_sale_orders.py:0
#, python-format
msgid "Sales Orders"
msgstr ""
16 changes: 14 additions & 2 deletions sale_blanket_order_filter_date/i18n/en_GB.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 05:24+0000\n"
"PO-Revision-Date: 2024-09-25 05:24+0000\n"
"POT-Creation-Date: 2024-09-27 06:32+0000\n"
"PO-Revision-Date: 2024-09-27 06:32+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
Expand Down Expand Up @@ -39,3 +39,15 @@ msgstr ""
#: model:ir.model.fields,field_description:sale_blanket_order_filter_date.field_sale_blanket_order_wizard__line_ids
msgid "Lines"
msgstr ""

#. module: sale_blanket_order_filter_date
#: model:ir.model,name:sale_blanket_order_filter_date.model_sale_order_line
msgid "Sales Order Line"
msgstr ""

#. module: sale_blanket_order_filter_date
#. odoo-python
#: code:addons/sale_blanket_order_filter_date/wizard/create_sale_orders.py:0
#, python-format
msgid "Sales Orders"
msgstr ""
16 changes: 14 additions & 2 deletions sale_blanket_order_filter_date/i18n/es.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 05:24+0000\n"
"PO-Revision-Date: 2024-09-25 05:24+0000\n"
"POT-Creation-Date: 2024-09-27 06:32+0000\n"
"PO-Revision-Date: 2024-09-27 06:32+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
Expand Down Expand Up @@ -39,3 +39,15 @@ msgstr "Fecha Hasta"
#: model:ir.model.fields,field_description:sale_blanket_order_filter_date.field_sale_blanket_order_wizard__line_ids
msgid "Lines"
msgstr "Líneas"

#. module: sale_blanket_order_filter_date
#: model:ir.model,name:sale_blanket_order_filter_date.model_sale_order_line
msgid "Sales Order Line"
msgstr "Línea de pedido de venta"

#. module: sale_blanket_order_filter_date
#. odoo-python
#: code:addons/sale_blanket_order_filter_date/wizard/create_sale_orders.py:0
#, python-format
msgid "Sales Orders"
msgstr "Pedidos de venta"
16 changes: 14 additions & 2 deletions sale_blanket_order_filter_date/i18n/fr.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 05:24+0000\n"
"PO-Revision-Date: 2024-09-25 05:24+0000\n"
"POT-Creation-Date: 2024-09-27 06:32+0000\n"
"PO-Revision-Date: 2024-09-27 06:32+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
Expand Down Expand Up @@ -39,3 +39,15 @@ msgstr ""
#: model:ir.model.fields,field_description:sale_blanket_order_filter_date.field_sale_blanket_order_wizard__line_ids
msgid "Lines"
msgstr "Lignes"

#. module: sale_blanket_order_filter_date
#: model:ir.model,name:sale_blanket_order_filter_date.model_sale_order_line
msgid "Sales Order Line"
msgstr "Ligne de bon de commande"

#. module: sale_blanket_order_filter_date
#. odoo-python
#: code:addons/sale_blanket_order_filter_date/wizard/create_sale_orders.py:0
#, python-format
msgid "Sales Orders"
msgstr ""
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 05:23+0000\n"
"PO-Revision-Date: 2024-09-25 05:23+0000\n"
"POT-Creation-Date: 2024-09-27 06:31+0000\n"
"PO-Revision-Date: 2024-09-27 06:31+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
Expand Down Expand Up @@ -39,3 +39,15 @@ msgstr ""
#: model:ir.model.fields,field_description:sale_blanket_order_filter_date.field_sale_blanket_order_wizard__line_ids
msgid "Lines"
msgstr ""

#. module: sale_blanket_order_filter_date
#: model:ir.model,name:sale_blanket_order_filter_date.model_sale_order_line
msgid "Sales Order Line"
msgstr ""

#. module: sale_blanket_order_filter_date
#. odoo-python
#: code:addons/sale_blanket_order_filter_date/wizard/create_sale_orders.py:0
#, python-format
msgid "Sales Orders"
msgstr ""
1 change: 1 addition & 0 deletions sale_blanket_order_filter_date/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
from . import sale_blanket_order
from . import sale_order_line
17 changes: 17 additions & 0 deletions sale_blanket_order_filter_date/models/sale_order_line.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Copyright 2024 Alfredo de la Fuente - AvanzOSC
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import api, models


class SaleOrderLine(models.Model):
_inherit = "sale.order.line"

@api.model_create_multi
def create(self, vals_list):
if "sale_blanker_order_date" in self.env.context:
for i in range(len(vals_list) - 1, -1, -1):
if "commitment_date" not in vals_list[i]:
del vals_list[i]
if "sale_blanker_order_date" in self.env.context and not vals_list:
return self.env["sale.order.line"]
return super().create(vals_list)
12 changes: 12 additions & 0 deletions sale_blanket_order_filter_date/wizard/create_sale_order_views.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_create_sale_order" model="ir.ui.view">
<field name="model">sale.blanket.order.wizard</field>
<field name="inherit_id" ref="sale_blanket_order.view_create_sale_order" />
<field name="arch" type="xml">
<button name="create_sale_order" position="attributes">
<attribute name="name">create_sale_order_by_date</attribute>
</button>
</field>
</record>
</odoo>
41 changes: 29 additions & 12 deletions sale_blanket_order_filter_date/wizard/create_sale_orders.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Copyright 2024 Alfredo de la Fuente - AvanzOSC
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import api, fields, models
from odoo import _, api, fields, models


class BlanketOrderWizard(models.TransientModel):
Expand Down Expand Up @@ -33,15 +33,23 @@ def _default_lines_filter_date(self):
default=_default_lines_filter_date,
)

def create_sale_order(self):
min_date = False
lines = self.line_ids.filtered(lambda x: x.date_schedule)
if lines:
line = min(lines, key=lambda x: x.date_schedule)
min_date = line.date_schedule
return super(
BlanketOrderWizard, self.with_context(min_date=min_date)
).create_sale_order()
def create_sale_order_by_date(self):
dates = set(self.line_ids.mapped("date_schedule"))
new_sales = []
for date in dates:
result = self.with_context(sale_blanker_order_date=date).create_sale_order()
if "domain" in result:
domain = result.get("domain")
new_sales += domain[0][2]
return {
"domain": [("id", "in", new_sales)],
"name": _("Sales Orders"),
"view_type": "form",
"view_mode": "tree,form",
"res_model": "sale.order",
"context": {"from_sale_order": True},
"type": "ir.actions.act_window",
}

def _prepare_so_vals(
self,
Expand All @@ -60,6 +68,15 @@ def _prepare_so_vals(
payment_term_id,
order_lines_by_customer,
)
if "min_date" in self.env.context and self.env.context.get("min_date", False):
vals["commitment_date"] = self.env.context.get("min_date")
if "sale_blanker_order_date" in self.env.context:
vals["commitment_date"] = self.env.context.get("sale_blanker_order_date")
return vals

def _prepare_so_line_vals(self, line):
vals = super()._prepare_so_line_vals(line)
if (
"sale_blanker_order_date" in self.env.context
and line.date_schedule == self.env.context.get("sale_blanker_order_date")
):
vals["commitment_date"] = self.env.context.get("sale_blanker_order_date")
return vals

0 comments on commit 6396d5b

Please sign in to comment.