diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2026-01-03 14:49:59 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2026-01-03 14:49:59 +0700 |
| commit | 821f741178fa5aeba969eda95caf00275fb3c91e (patch) | |
| tree | 3a4dc25d2e8fd29bed8d06f3a46ac8c0f5df08a2 | |
| parent | b7edd32095ea811392ceb11b834c09dadb3be3d4 (diff) | |
push
| -rw-r--r-- | fixco_custom/models/reordering_rule.py | 53 | ||||
| -rw-r--r-- | fixco_custom/models/upload_ginee.py | 16 |
2 files changed, 51 insertions, 18 deletions
diff --git a/fixco_custom/models/reordering_rule.py b/fixco_custom/models/reordering_rule.py index 107d40b..f1e0f9d 100644 --- a/fixco_custom/models/reordering_rule.py +++ b/fixco_custom/models/reordering_rule.py @@ -86,23 +86,48 @@ class ReorderingRule(models.Model): vmsbm.min_stock, vmsbm.buffer_stock, vmsbm.vendor_id, + + -- FINAL ONHAND (boleh override di sini) COALESCE(SUM(sq.quantity), 0.0) AS qty_onhand, + vmsbm.incoming_qty AS qty_incoming, - vmsbm.diff_stock AS diff_stock, - vmsbm.stock_status AS stock_status - FROM - view_manage_stock_below_min vmsbm - LEFT JOIN - stock_quant sq ON sq.product_id = vmsbm.product_id AND sq.location_id = 55 + + -- DIFF STOCK FINAL + ( + COALESCE(SUM(sq.quantity), 0.0) + + vmsbm.incoming_qty + - vmsbm.min_stock + ) AS diff_stock, + + -- FINAL STOCK STATUS + CASE + WHEN ( + COALESCE(SUM(sq.quantity), 0.0) + + vmsbm.incoming_qty + ) < vmsbm.min_stock + THEN 'MINUS STOCK' + + WHEN ( + COALESCE(SUM(sq.quantity), 0.0) + + vmsbm.incoming_qty + ) <= (vmsbm.min_stock + vmsbm.buffer_stock) + THEN 'LOW STOCK' + + ELSE 'READY STOCK' + END AS stock_status + + FROM view_buffer_stock_below_min vmsbm + LEFT JOIN stock_quant sq + ON sq.product_id = vmsbm.product_id + AND sq.location_id = 55 GROUP BY - vmsbm.id, - vmsbm.product_id, - vmsbm.min_stock, - vmsbm.buffer_stock, - vmsbm.vendor_id, - vmsbm.incoming_qty, - vmsbm.diff_stock, - vmsbm.stock_status + vmsbm.id, + vmsbm.product_id, + vmsbm.min_stock, + vmsbm.buffer_stock, + vmsbm.vendor_id, + vmsbm.incoming_qty ) """) + diff --git a/fixco_custom/models/upload_ginee.py b/fixco_custom/models/upload_ginee.py index 379a704..d522787 100644 --- a/fixco_custom/models/upload_ginee.py +++ b/fixco_custom/models/upload_ginee.py @@ -284,12 +284,21 @@ class UploadGineeLine(models.Model): else: # Process single line (non-grouped) line = lines[0] + so_exist = self.env['sale.order'].search( + [('invoice_mp', 'ilike', line.invoice_marketplace)] + ) + + if so_exist: + raise UserError(_( + "Invoice Marketplace %s sudah terdaftar di Sale Order: %s" + ) % ( + line.invoice_marketplace, + ', '.join(so_exist.mapped('name')) + )) + if not line.order_id: raise UserError(_('Order ID is empty!')) - if self.env['sale.order'].search([('invoice_mp', 'ilike', line.invoice_marketplace)]): - raise UserError(_( - "Invoice Marketplace %s already exists in Sale Orders") % line.invoice_marketplace) data = line._call_api(BATCH_GET_URI, {"orderIds": [line.order_id]}) detail_order = self.env['detail.order'].create({ @@ -309,7 +318,6 @@ class UploadGineeLine(models.Model): line.message_error = str(e) def get_order_id(self): - for rec in self: try: if rec.order_id: |
