diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2024-04-05 09:30:13 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2024-04-05 09:30:13 +0700 |
| commit | d9ea0beef9ac7bc317151fa47f67b5776d6bb6cb (patch) | |
| tree | 947cee19abcd62c049b6b1bd711da8866be94f44 | |
| parent | ce8c895990a235bc9e597268e8317101676f54a6 (diff) | |
fix purchasing job
| -rw-r--r-- | indoteknik_custom/models/purchasing_job.py | 29 |
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) |
