diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2026-01-29 10:06:44 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2026-01-29 10:06:44 +0700 |
| commit | c7679d9dc51b7c7aa9214f91802b22877089a896 (patch) | |
| tree | be6803014880bef4ba3bfe8371321a317b1d0f98 | |
| parent | 3b5f2a1070e98fc32e5dbe89b58b57298635d001 (diff) | |
push
| -rw-r--r-- | fixco_custom/models/reordering_rule.py | 8 | ||||
| -rw-r--r-- | fixco_custom/models/upload_payments.py | 20 | ||||
| -rw-r--r-- | fixco_custom/views/upload_payments.xml | 1 |
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> |
