summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2026-01-29 10:06:44 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2026-01-29 10:06:44 +0700
commitc7679d9dc51b7c7aa9214f91802b22877089a896 (patch)
treebe6803014880bef4ba3bfe8371321a317b1d0f98
parent3b5f2a1070e98fc32e5dbe89b58b57298635d001 (diff)
push
-rw-r--r--fixco_custom/models/reordering_rule.py8
-rw-r--r--fixco_custom/models/upload_payments.py20
-rw-r--r--fixco_custom/views/upload_payments.xml1
3 files changed, 20 insertions, 9 deletions
diff --git a/fixco_custom/models/reordering_rule.py b/fixco_custom/models/reordering_rule.py
index 5584f8b..7f945b6 100644
--- a/fixco_custom/models/reordering_rule.py
+++ b/fixco_custom/models/reordering_rule.py
@@ -113,10 +113,14 @@ class ReorderingRule(models.Model):
WHEN (
COALESCE(SUM(sq.quantity), 0.0)
+ vmsbm.incoming_qty - vmsbm.outgoing_qty
- ) <= (vmsbm.min_stock + vmsbm.buffer_stock)
+ ) > vmsbm.min_stock
THEN 'HOLD'
- ELSE 'READY STOCK'
+ WHEN (
+ COALESCE(SUM(sq.quantity), 0.0)
+ + vmsbm.incoming_qty - vmsbm.outgoing_qty
+ ) > vmsbm.buffer_stock
+ THEN 'READY STOCK'
END AS stock_status
FROM view_buffer_stock_below_min vmsbm
diff --git a/fixco_custom/models/upload_payments.py b/fixco_custom/models/upload_payments.py
index 58f8038..7761ce6 100644
--- a/fixco_custom/models/upload_payments.py
+++ b/fixco_custom/models/upload_payments.py
@@ -79,10 +79,13 @@ class UploadPayments(models.Model):
for move in invoice:
move._register_payment_automatically(line.date_invoice)
- def queue_job(self):
+ def queue_job(self, limit=100):
self.date_upload = fields.Datetime.now()
- lines = self.payments_lines.filtered(lambda l: not l.payment_id)
+ lines = self.payments_lines.filtered(
+ lambda l: not l.payment_id and not l.is_queued
+ )[:limit]
+
existing_jobs = self.env['queue.job'].search([
('model_name', '=', 'upload.payments.line'),
@@ -93,18 +96,19 @@ class UploadPayments(models.Model):
existing_res_ids = set(existing_jobs.mapped('res_id'))
- jobs_to_create = []
for line in lines:
if line.id in existing_res_ids:
continue
- jobs_to_create.append({
- 'name': f'Upload Payments {line.no_invoice}',
+
+ self.env['queue.job'].create({
+ 'name': f'Upload Payments {line.no_bu}',
'model_name': 'upload.payments.line',
'method_name': 'action_create_payments',
'res_id': line.id,
})
-
- self.env['queue.job'].create(jobs_to_create)
+
+ line.is_queued = True
+ self.env.cr.commit()
class UploadPaymentsLine(models.Model):
@@ -117,6 +121,8 @@ class UploadPaymentsLine(models.Model):
date_invoice = fields.Date('Invoice Date', required=True)
move_id = fields.Many2one('account.move', string='Invoice')
payment_id = fields.Many2one('account.payment', string='Created Payment')
+ message_error = fields.Text('Error Message')
+ is_queued = fields.Boolean(default=False)
def action_create_payments(self):
self.ensure_one()
diff --git a/fixco_custom/views/upload_payments.xml b/fixco_custom/views/upload_payments.xml
index 3c83cb5..2ec9d18 100644
--- a/fixco_custom/views/upload_payments.xml
+++ b/fixco_custom/views/upload_payments.xml
@@ -36,6 +36,7 @@
<field name="date_invoice"/>
<field name="move_id"/>
<field name="payment_id"/>
+ <field name="is_queued"/>
</tree>
</field>
</sheet>