summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/sale_order.py
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2026-03-12 09:04:08 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2026-03-12 09:04:08 +0700
commitb0583d9afe66887e53aa2ea80f1701b892fbf67f (patch)
treef752a7898b3572b5a0b1d3d346622a3f7cbaa001 /indoteknik_custom/models/sale_order.py
parent08c93fcf63a23eddae47b56863e4b90b022c87b5 (diff)
parent1ee6bd364ff290a3d8dddc6e9b599e52f8f66c4a (diff)
Merge branch 'odoo-backup' of bitbucket.org:altafixco/indoteknik-addons into odoo-backup
matches so
Diffstat (limited to 'indoteknik_custom/models/sale_order.py')
-rwxr-xr-xindoteknik_custom/models/sale_order.py31
1 files changed, 30 insertions, 1 deletions
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 2b064042..042cd483 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -405,6 +405,7 @@ class SaleOrder(models.Model):
client_order_ref = fields.Char(tracking=True)
+ sourcing_job_count = fields.Integer(string='Sourcing Count', compute='_compute_sourcing_count')
forecast_raw = fields.Text(
string='Forecast Raw',
compute='_compute_forecast_raw'
@@ -3931,6 +3932,17 @@ class SaleOrder(models.Model):
'context': {'default_sale_order_ids': [self.id]},
}
+ def action_view_related_sjo(self):
+ self.ensure_one()
+ return {
+ 'type': 'ir.actions.act_window',
+ 'name': 'Sourcing Job',
+ 'res_model': 'sourcing.job.order',
+ 'view_mode': 'tree,form',
+ 'domain': [('so_id', '=', self.id)],
+ 'context': {'default_so_id': self.id},
+ }
+
def _compute_refund_ids(self):
for order in self:
refunds = self.env['refund.sale.order'].search([
@@ -3944,6 +3956,12 @@ class SaleOrder(models.Model):
('sale_order_ids', 'in', order.id)
])
+ def _compute_sourcing_count(self):
+ for order in self:
+ order.sourcing_job_count = self.env['sourcing.job.order'].search_count([
+ ('so_id', '=', order.id)
+ ])
+
@api.depends('invoice_ids')
def _compute_advance_payment_move(self):
for order in self:
@@ -3989,6 +4007,17 @@ class SaleOrder(models.Model):
'target': 'current',
}
+ def action_open_sjo(self):
+ return {
+ 'name': 'SJO',
+ 'type': 'ir.actions.act_window',
+ 'res_model': 'sourcing.job.order',
+ 'view_mode': 'form',
+ 'target': 'current',
+ 'context': {
+ 'default_so_id': self.id,
+ }
+ }
class SaleForecastCoverage(models.Model):
_name = 'sale.forecast.coverage'
_description = 'Sale Forecast Coverage'
@@ -4009,4 +4038,4 @@ class SaleForecastCoverage(models.Model):
reservation = fields.Boolean()
is_late = fields.Boolean()
- replenishment_filled = fields.Boolean() \ No newline at end of file
+ replenishment_filled = fields.Boolean()