summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2024-07-04 16:20:20 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2024-07-04 16:20:20 +0700
commitef2f43dd3dd460118c49ec98674dcf002ad2c00e (patch)
treefb9c5b5713d2ac6827f7c79441363811768a4cea
parent17e4deaaa9b274069e2ee01c2cdba7630532b68b (diff)
fix bug
-rw-r--r--indoteknik_custom/models/purchasing_job.py45
1 files changed, 19 insertions, 26 deletions
diff --git a/indoteknik_custom/models/purchasing_job.py b/indoteknik_custom/models/purchasing_job.py
index 40061d22..373e469a 100644
--- a/indoteknik_custom/models/purchasing_job.py
+++ b/indoteknik_custom/models/purchasing_job.py
@@ -41,13 +41,14 @@ class PurchasingJob(models.Model):
}
def init(self):
- query = """
+ tools.drop_view_if_exists(self.env.cr, self._table)
+ self.env.cr.execute("""
CREATE OR REPLACE VIEW %s AS (
WITH latest_purchase_orders AS (
SELECT
pol.product_id,
po.user_id,
- ROW_NUMBER() OVER (PARTITION BY pol.product_id ORDER BY po.create_date DESC) AS order_rank
+ ROW_NUMBER() OVER (PARTITION BY po.partner_id ORDER BY po.create_date DESC) AS order_rank
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
@@ -69,26 +70,11 @@ class PurchasingJob(models.Model):
LEFT JOIN sale_order_line sol ON sol.id = vso.sale_line_id
) AS sub
WHERE sub.vendor_id IS NOT NULL
- ),
- unique_sub AS (
- SELECT DISTINCT
- vso.product_id,
- sol.vendor_id
- FROM v_sales_outstanding vso
- LEFT JOIN sale_order_line sol ON sol.id = vso.sale_line_id
- WHERE sol.vendor_id IS NOT NULL
- ),
- latest_po_filtered AS (
- SELECT
- product_id,
- user_id
- FROM latest_purchase_orders
- WHERE order_rank = 1
)
SELECT
pmp.product_id AS id,
pmp.product_id,
- MAX(sub.vendor_id) AS vendor_id,
+ sub.vendor_id,
pmp.brand,
pmp.item_code,
pmp.product,
@@ -98,23 +84,30 @@ class PurchasingJob(models.Model):
pmp.action,
MAX(pjs.status_apo) AS status_apo,
MAX(pjs.note) AS note,
- MAX(ru.user_id) 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 unique_sub sub ON sub.product_id = pmp.product_id
- LEFT JOIN latest_po_filtered po ON po.product_id = pmp.product_id
+ LEFT JOIN (
+ SELECT
+ vso.product_id,
+ sol.vendor_id
+ FROM v_sales_outstanding vso
+ LEFT JOIN sale_order_line sol ON sol.id = vso.sale_line_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
+ AND sub.vendor_id IS NOT NULL
GROUP BY
pmp.product_id,
pmp.brand,
pmp.item_code,
pmp.product,
- pmp.action
- )""" % self._table
-
- self.env.cr.execute(query)
+ pmp.action,
+ sub.vendor_id,
+ ru.user_id
+ )
+ """ % self._table)
def open_form_multi_generate_request_po(self):