diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2024-03-15 11:12:46 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2024-03-15 11:12:46 +0700 |
| commit | a774c1bd0b2dc1ee27a08b6b4da7162bdb7a9365 (patch) | |
| tree | 896eabe285a1d68a489f8d92154b6efa00d8ad32 | |
| parent | d3e3a8abf0ae382442c16a7ac6091c7bb872313f (diff) | |
Fix compute fulfillment feature in sale order
| -rw-r--r-- | indoteknik_custom/models/report_stock_forecasted.py | 9 | ||||
| -rwxr-xr-x | indoteknik_custom/models/sale_order.py | 11 | ||||
| -rw-r--r-- | indoteknik_custom/models/sale_order_line.py | 3 | ||||
| -rw-r--r-- | indoteknik_custom/models/sales_order_fullfillment.py | 2 | ||||
| -rwxr-xr-x | indoteknik_custom/views/sale_order.xml | 1 |
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"/> |
