summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2024-03-15 11:12:46 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2024-03-15 11:12:46 +0700
commita774c1bd0b2dc1ee27a08b6b4da7162bdb7a9365 (patch)
tree896eabe285a1d68a489f8d92154b6efa00d8ad32
parentd3e3a8abf0ae382442c16a7ac6091c7bb872313f (diff)
Fix compute fulfillment feature in sale order
-rw-r--r--indoteknik_custom/models/report_stock_forecasted.py9
-rwxr-xr-xindoteknik_custom/models/sale_order.py11
-rw-r--r--indoteknik_custom/models/sale_order_line.py3
-rw-r--r--indoteknik_custom/models/sales_order_fullfillment.py2
-rwxr-xr-xindoteknik_custom/views/sale_order.xml1
5 files changed, 14 insertions, 12 deletions
diff --git a/indoteknik_custom/models/report_stock_forecasted.py b/indoteknik_custom/models/report_stock_forecasted.py
index 7ae93fda..44bdfe3e 100644
--- a/indoteknik_custom/models/report_stock_forecasted.py
+++ b/indoteknik_custom/models/report_stock_forecasted.py
@@ -20,17 +20,10 @@ class ReplenishmentReport(models.AbstractModel):
result_dict.setdefault(order_id, []).append((result, quantity))
for order_id, results in result_dict.items():
- sale_order_lines = self.env['sale.order.line'].search([('order_id', '=', order_id)])
sales_order = self.env['sale.order'].browse(order_id)
for result, quantity in results:
- fullfillment = self.env['sales.order.fullfillment'].search([('sales_order_id', '=', sales_order.id), ('product_id', '=', product_id)])
- if fullfillment:
- fullfillment.reserved_from = result
- fullfillment.qty_fullfillment = quantity
- continue
-
- fullfillment.create({
+ self.env['sales.order.fullfillment'].create({
'sales_order_id': sales_order.id,
'product_id': product_id,
'reserved_from': result,
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 32ffc964..d046bb00 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -86,6 +86,17 @@ class SaleOrder(models.Model):
picking_iu_id = fields.Many2one('stock.picking', 'Picking IU')
helper_by_id = fields.Many2one('res.users', 'Helper By')
eta_date = fields.Datetime(string='ETA Date', copy=False, compute='_compute_eta_date')
+ compute_fullfillment = fields.Boolean(string='Compute Fullfillment', compute="_compute_fullfillment")
+
+ def _compute_fullfillment(self):
+ for rec in self:
+ for fullfillment in rec.fullfillment_line:
+ fullfillment.sales_order_id = False
+
+ for line in rec.order_line:
+ line._compute_reserved_from()
+
+ rec.compute_fullfillment = True
def _compute_eta_date(self):
max_leadtime = 0
diff --git a/indoteknik_custom/models/sale_order_line.py b/indoteknik_custom/models/sale_order_line.py
index 95c9cdfa..5b5b35d6 100644
--- a/indoteknik_custom/models/sale_order_line.py
+++ b/indoteknik_custom/models/sale_order_line.py
@@ -67,9 +67,6 @@ class SaleOrderLine(models.Model):
reserved_qty = sum(move.product_uom_qty for move in stock_moves)
line.qty_reserved = reserved_qty
- if reserved_qty > 0:
- self._compute_reserved_from()
-
def _compute_reserved_from(self):
for line in self:
report_stock_forecasted = self.env['report.stock.report_product_product_replenishment']
diff --git a/indoteknik_custom/models/sales_order_fullfillment.py b/indoteknik_custom/models/sales_order_fullfillment.py
index db6b7369..97e6d5c2 100644
--- a/indoteknik_custom/models/sales_order_fullfillment.py
+++ b/indoteknik_custom/models/sales_order_fullfillment.py
@@ -9,7 +9,7 @@ _logger = logging.getLogger(__name__)
class SalesOrderFullfillment(models.Model):
_name = 'sales.order.fullfillment'
- sales_order_id = fields.Many2one('sale.order', string='Sale Order', index=True, required=True, ondelete='cascade')
+ sales_order_id = fields.Many2one('sale.order', string='Sale Order')
product_id = fields.Many2one('product.product', string='Product')
reserved_from = fields.Char(string='Reserved From', copy=False)
qty_fullfillment = fields.Float(string='Qty') \ No newline at end of file
diff --git a/indoteknik_custom/views/sale_order.xml b/indoteknik_custom/views/sale_order.xml
index 0f21d65f..7d1d4c4a 100755
--- a/indoteknik_custom/views/sale_order.xml
+++ b/indoteknik_custom/views/sale_order.xml
@@ -43,6 +43,7 @@
</field>
<field name="user_id" position="after">
<field name="helper_by_id" readonly="1"/>
+ <field name="compute_fullfillment" invisible="1"/>
</field>
<field name="tag_ids" position="after">
<field name="eta_date" readonly="1"/>