summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fixco_custom/models/reordering_rule.py53
-rw-r--r--fixco_custom/models/upload_ginee.py16
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: