summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2024-04-05 09:30:13 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2024-04-05 09:30:13 +0700
commitd9ea0beef9ac7bc317151fa47f67b5776d6bb6cb (patch)
tree947cee19abcd62c049b6b1bd711da8866be94f44
parentce8c895990a235bc9e597268e8317101676f54a6 (diff)
fix purchasing job
-rw-r--r--indoteknik_custom/models/purchasing_job.py29
1 files changed, 21 insertions, 8 deletions
diff --git a/indoteknik_custom/models/purchasing_job.py b/indoteknik_custom/models/purchasing_job.py
index ea8f9298..d3d95a09 100644
--- a/indoteknik_custom/models/purchasing_job.py
+++ b/indoteknik_custom/models/purchasing_job.py
@@ -52,6 +52,22 @@ class PurchasingJob(models.Model):
FROM purchase_order po
RIGHT JOIN purchase_order_line pol ON pol.order_id = po.id
LEFT JOIN res_partner rp ON rp.id = po.partner_id
+ ),
+ random_user_ids AS (
+ SELECT DISTINCT
+ CASE
+ WHEN vendor_id = 5571 THEN 27
+ WHEN vendor_id = 9688 THEN 397
+ ELSE (CASE WHEN random() < 0.5 THEN 397 ELSE 1036 END)
+ END AS user_id,
+ vendor_id
+ FROM (
+ SELECT
+ sol.vendor_id
+ FROM v_sales_outstanding vso
+ LEFT JOIN sale_order_line sol ON sol.id = vso.sale_line_id
+ ) AS sub
+ WHERE sub.vendor_id IS NOT NULL
)
SELECT
pmp.product_id AS id,
@@ -66,22 +82,18 @@ class PurchasingJob(models.Model):
pmp.action,
MAX(pjs.status_apo) AS status_apo,
MAX(pjs.note) AS note,
- CASE
- WHEN sub.vendor_id = 5571 THEN 27
- WHEN sub.vendor_id = 9688 THEN 397
- ELSE (CASE WHEN RANDOM() < 0.5 THEN 397 ELSE 1036 END)
- END AS purchase_representative_id
+ ru.user_id AS purchase_representative_id
FROM v_procurement_monitoring_by_product pmp
LEFT JOIN purchasing_job_state pjs ON pjs.purchasing_job_id = pmp.product_id
LEFT JOIN (
SELECT
vso.product_id,
- rp.id AS vendor_id
+ sol.vendor_id
FROM v_sales_outstanding vso
LEFT JOIN sale_order_line sol ON sol.id = vso.sale_line_id
- LEFT JOIN res_partner rp ON rp.id = sol.vendor_id
) AS sub ON sub.product_id = pmp.product_id
LEFT JOIN latest_purchase_orders po ON po.product_id = pmp.product_id
+ LEFT JOIN random_user_ids ru ON ru.vendor_id = sub.vendor_id OR (ru.vendor_id IS NULL AND sub.vendor_id != 9688)
WHERE pmp.action = 'kurang'
AND sub.vendor_id IS NOT NULL
GROUP BY
@@ -90,7 +102,8 @@ class PurchasingJob(models.Model):
pmp.item_code,
pmp.product,
pmp.action,
- sub.vendor_id
+ sub.vendor_id,
+ ru.user_id
)
""" % self._table)