Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.02 KB | None | 0 0
  1. SELECT "price_order_supplier"."id", "price_order_supplier"."status", "contragent"."id" AS "contragent_id", COALESCE(contragent.short_name, contragent.full_name) AS "contragent_name", "price_order_supplier"."delivery_price", "t1"."available_positions", "t1"."cost", "t1"."cost_no_nds", "t1"."cost_history_first", "t1"."cost_pricelist", '1' AS "positions_count", t1.cost + price_order_supplier.delivery_price AS "cost_with_delivery", GREATEST( (1 - t1.available_positions), 0 ) AS "not_available_positions", "t1"."alternative_count", "t1"."price_above_nmc", "t1"."undeliverable_priority_count", "t1"."manufacturer_total", "t1"."innovative_product_total", "price_order_supplier_region"."regions" AS "required_regions", CASE WHEN contragent.small_biz THEN 1 ELSE 0 END AS "small_biz", CASE WHEN price_order.winner_supplier_id = price_order_supplier.contragent_id THEN 1 ELSE 0 END AS "is_chosen", CASE WHEN price_order_supplier.status = 2 AND t1.undeliverable_priority_count = 0 THEN 1 ELSE 0 END AS "can_chosen", "pmi_composite_supplier_values"."value" AS "pmi_supplier_value" FROM (SELECT "t0"."contragent_id", COUNT(t0.price_order_supplier_position_supplier_position_id) AS "available_positions", SUM(t0.alternative) AS "alternative_count", SUM(t0.price_above_nmc) AS "price_above_nmc", SUM(t0.undeliverable_priority) AS "undeliverable_priority_count", SUM(t0.manufacturer) AS "manufacturer_total", SUM(t0.innovative_product) AS "innovative_product_total", SUM(t0.cost) AS "cost", SUM(t0.cost_no_nds) AS "cost_no_nds", SUM(t0.cost_history_first) AS "cost_history_first", SUM(t0.cost_pricelist) AS "cost_pricelist" FROM (SELECT "contragent"."id" AS "contragent_id", "price_order_supplier"."id" AS "price_order_supplier_id", "price_order_supplier_position"."id" AS "price_order_supplier_position_id", "price_order_position"."id" AS "price_order_position_id", "price_order"."id" AS "price_order_id", CASE WHEN price_order_supplier_position.is_alternative THEN 1 ELSE 0 END AS "alternative", CASE WHEN price_order_position.needed_price < price_order_supplier_position.price THEN 1 ELSE 0 END AS "price_above_nmc", CASE WHEN price_order_supplier_position.deliverable = 'f' AND price_order_position.priority = 't' THEN 1 ELSE 0 END AS "undeliverable_priority", CASE WHEN supplier_position.is_manufacturer THEN 1 ELSE 0 END AS "manufacturer", CASE WHEN supplier_position.innovative_product THEN 1 ELSE 0 END AS "innovative_product", price_order_supplier_position.price * price_order_position.quantity AS "cost", ROUND( price_order_supplier_position.price / (1 + ( price_order_supplier_position.nds / 100 ) ), 2 ) * price_order_position.quantity AS "cost_no_nds", price_order_supplier_position_history.price * price_order_position.quantity AS "cost_history_first", ROUND( supplier_position_cond.price * (100 - supplier_position_cond.discount) / 100 * price_order_position.quantity ) AS "cost_pricelist", "supplier_position"."id" AS "price_order_supplier_position_supplier_position_id" FROM "nsi_price_order_positions" AS "price_order_position"
  2. INNER JOIN "nsi_price_order" AS "price_order" ON price_order.id = price_order_position.price_order_id
  3. INNER JOIN "nsi_dictionary_position" AS "dictionary_position" ON CASE WHEN dictionary_position.id IS NOT NULL THEN dictionary_position.id = price_order_position.dictionary_position_id ELSE dictionary_position.nsi_category_code = price_order_position.category_code END
  4. LEFT JOIN (SELECT DISTINCT "price_order_position_attribute"."price_order_position_id" FROM "nsi_price_order_position_attribute" AS "price_order_position_attribute"
  5. INNER JOIN "nsi_price_order_positions" AS "price_order_position" ON price_order_position.id = price_order_position_attribute.price_order_position_id
  6. INNER JOIN "nsi_category_attribute" AS "category_attribute" ON category_attribute.id = price_order_position_attribute.nsi_category_attribute_id
  7. INNER JOIN "nsi_position_attribute" AS "position_attribute" ON position_attribute.nsi_category_attribute_id = category_attribute.id WHERE (position_attribute.value <> price_order_position_attribute.value) AND (position_attribute.value <> price_order_position_attribute.value)) AS "t0" ON t0.price_order_position_id = price_order_position.id
  8. LEFT JOIN "nsi_price_order_supplier" AS "price_order_supplier" ON price_order_supplier.price_order_id = price_order.id
  9. LEFT JOIN "nsi_price_order_supplier_positions" AS "price_order_supplier_position" ON price_order_supplier_position.price_order_supplier_id = price_order_supplier.id AND price_order_supplier_position.price_order_position_id = price_order_position.id
  10. LEFT JOIN "nsi_supplier_position" AS "supplier_position" ON supplier_position.dictionary_position_id = dictionary_position.id
  11. LEFT JOIN "contragents" AS "contragent" ON contragent.id = supplier_position.contragent_id
  12. LEFT JOIN (SELECT RANK () OVER (
  13. PARTITION BY price_order_supplier_position_history.record_id
  14. ORDER BY
  15. price_order_supplier_position_history.date DESC
  16. ) AS "rank", COALESCE(price_order_supplier_position_history.to::NUMERIC, 0) AS "price", "price_order_supplier_position_history"."record_id" AS "price_order_supplier_position_id" FROM "nsi_price_order_positions" AS "price_order_position"
  17. INNER JOIN "nsi_price_order" AS "price_order" ON price_order.id = price_order_position.price_order_id
  18. INNER JOIN "nsi_dictionary_position" AS "dictionary_position" ON CASE WHEN dictionary_position.id IS NOT NULL THEN dictionary_position.id = price_order_position.dictionary_position_id ELSE dictionary_position.nsi_category_code = price_order_position.category_code END
  19. LEFT JOIN (SELECT DISTINCT "price_order_position_attribute"."price_order_position_id" FROM "nsi_price_order_position_attribute" AS "price_order_position_attribute"
  20. INNER JOIN "nsi_price_order_positions" AS "price_order_position" ON price_order_position.id = price_order_position_attribute.price_order_position_id
  21. INNER JOIN "nsi_category_attribute" AS "category_attribute" ON category_attribute.id = price_order_position_attribute.nsi_category_attribute_id
  22. INNER JOIN "nsi_position_attribute" AS "position_attribute" ON position_attribute.nsi_category_attribute_id = category_attribute.id WHERE (position_attribute.value <> price_order_position_attribute.value) AND (position_attribute.value <> price_order_position_attribute.value)) AS "t0" ON t0.price_order_position_id = price_order_position.id
  23. LEFT JOIN "nsi_price_order_supplier" AS "price_order_supplier" ON price_order_supplier.price_order_id = price_order.id
  24. LEFT JOIN "nsi_price_order_supplier_positions" AS "price_order_supplier_position" ON price_order_supplier_position.price_order_supplier_id = price_order_supplier.id AND price_order_supplier_position.price_order_position_id = price_order_position.id
  25. LEFT JOIN "nsi_supplier_position" AS "supplier_position" ON supplier_position.dictionary_position_id = dictionary_position.id
  26. LEFT JOIN "nsi_price_order_supplier_positions_history" AS "price_order_supplier_position_history" ON price_order_supplier_position_history.record_id = price_order_supplier.id WHERE (t0.price_order_position_id IS NULL) AND (price_order_supplier_position_history.field = 'price') AND (price_order_supplier_position_history.from IS NULL) AND (price_order_supplier.price_order_id = 968)) AS "price_order_supplier_position_history" ON price_order_supplier_position_history.price_order_supplier_position_id = price_order_supplier_position.id AND price_order_supplier_position_history.rank = 1
  27. LEFT JOIN (SELECT "supplier_position"."id" AS "supplier_position_id", "price_order_position"."quantity" AS "price_order_position_quantity", COALESCE( price_order_supplier_position.price, supplier_position_price.price ) AS "price", COALESCE( supplier_position_cond_discount.discount, 0 ) AS "discount" FROM "nsi_price_order_positions" AS "price_order_position"
  28. INNER JOIN "nsi_price_order" AS "price_order" ON price_order.id = price_order_position.price_order_id
  29. INNER JOIN "nsi_dictionary_position" AS "dictionary_position" ON CASE WHEN dictionary_position.id IS NOT NULL THEN dictionary_position.id = price_order_position.dictionary_position_id ELSE dictionary_position.nsi_category_code = price_order_position.category_code END
  30. LEFT JOIN (SELECT DISTINCT "price_order_position_attribute"."price_order_position_id" FROM "nsi_price_order_position_attribute" AS "price_order_position_attribute"
  31. INNER JOIN "nsi_price_order_positions" AS "price_order_position" ON price_order_position.id = price_order_position_attribute.price_order_position_id
  32. INNER JOIN "nsi_category_attribute" AS "category_attribute" ON category_attribute.id = price_order_position_attribute.nsi_category_attribute_id
  33. INNER JOIN "nsi_position_attribute" AS "position_attribute" ON position_attribute.nsi_category_attribute_id = category_attribute.id WHERE (position_attribute.value <> price_order_position_attribute.value) AND (position_attribute.value <> price_order_position_attribute.value)) AS "t0" ON t0.price_order_position_id = price_order_position.id
  34. LEFT JOIN "nsi_price_order_supplier" AS "price_order_supplier" ON price_order_supplier.price_order_id = price_order.id
  35. LEFT JOIN "nsi_price_order_supplier_positions" AS "price_order_supplier_position" ON price_order_supplier_position.price_order_supplier_id = price_order_supplier.id AND price_order_supplier_position.price_order_position_id = price_order_position.id
  36. LEFT JOIN "nsi_supplier_position" AS "supplier_position" ON supplier_position.dictionary_position_id = dictionary_position.id
  37. LEFT JOIN (WITH supplier_position_list as (SELECT "supplier_position"."id" AS "supplier_position_id", "supplier_position_region"."region_code", "supplier_position_cond"."price", "supplier_position"."id" AS "supplier_position_cond_id", RANK () OVER (
  38. PARTITION BY supplier_position.id ORDER BY supplier_position_cond.price, supplier_position_region.region_code, supplier_position_cond.id ASC) AS "rank" FROM "nsi_supplier_position" AS "supplier_position"
  39. LEFT JOIN "nsi_supplier_position_cond" AS "supplier_position_cond" ON supplier_position_cond.nsi_supplier_position_id = supplier_position.id
  40. LEFT JOIN "nsi_supplier_position_regions" AS "supplier_position_region" ON supplier_position_region.nsi_supplier_position_cond_id = supplier_position_cond.id) SELECT "supplier_position"."id" AS "supplier_position_id", "supplier_position_list_default"."supplier_position_cond_id", "supplier_position_list_default"."price", CASE WHEN supplier_position_list_default.region_code IS NULL THEN 't' ELSE 'f' END :: BOOLEAN AS "is_default_price", "supplier_position_list_default"."region_code" FROM "nsi_supplier_position" AS "supplier_position"
  41. INNER JOIN (SELECT "supplier_position_list"."supplier_position_id", COALESCE( supplier_position_list.price, 0 ) AS "price", null AS "region_code", "supplier_position_list"."supplier_position_cond_id" FROM "supplier_position_list" WHERE (supplier_position_list.rank = 1) UNION SELECT "supplier_position_list"."supplier_position_id", COALESCE( supplier_position_list.price, 0 ) AS "price", "supplier_position_list"."region_code", "supplier_position_list"."supplier_position_cond_id" FROM "supplier_position_list" WHERE (supplier_position_list.price IS NOT NULL) AND (supplier_position_list.region_code IS NOT NULL)) AS "supplier_position_list_default" ON supplier_position_list_default.supplier_position_id = supplier_position.id) AS "supplier_position_price" ON supplier_position_price.supplier_position_id = supplier_position.id AND supplier_position_price.is_default_price
  42. LEFT JOIN "nsi_supplier_position_cond_discount" AS "supplier_position_cond_discount" ON supplier_position_cond_discount.nsi_supplier_position_cond_id = supplier_position_price.supplier_position_cond_id AND supplier_position_cond_discount.quantity_from <= price_order_position.quantity AND supplier_position_cond_discount.quantity_to >= price_order_position.quantity WHERE (t0.price_order_position_id IS NULL) AND (price_order.id = 968)) AS "supplier_position_cond" ON supplier_position_cond.supplier_position_id = supplier_position.id WHERE (t0.price_order_position_id IS NULL) AND (price_order.id = 968) AND (supplier_position.deleted = 'f') AND (supplier_position.is_actual = 't')) AS "t0" GROUP BY "t0"."contragent_id") AS "t1"
  43. LEFT JOIN "contragents" AS "contragent" ON contragent.id = t1.contragent_id
  44. LEFT JOIN (SELECT "supplier_position"."contragent_id", ARRAY_AGG(DISTINCT supplier_position_region.region_code) AS "regions" FROM "nsi_price_order_positions" AS "price_order_position"
  45. INNER JOIN "nsi_price_order" AS "price_order" ON price_order.id = price_order_position.price_order_id
  46. INNER JOIN "nsi_dictionary_position" AS "dictionary_position" ON CASE WHEN dictionary_position.id IS NOT NULL THEN dictionary_position.id = price_order_position.dictionary_position_id ELSE dictionary_position.nsi_category_code = price_order_position.category_code END
  47. LEFT JOIN (SELECT DISTINCT "price_order_position_attribute"."price_order_position_id" FROM "nsi_price_order_position_attribute" AS "price_order_position_attribute"
  48. INNER JOIN "nsi_price_order_positions" AS "price_order_position" ON price_order_position.id = price_order_position_attribute.price_order_position_id
  49. INNER JOIN "nsi_category_attribute" AS "category_attribute" ON category_attribute.id = price_order_position_attribute.nsi_category_attribute_id
  50. INNER JOIN "nsi_position_attribute" AS "position_attribute" ON position_attribute.nsi_category_attribute_id = category_attribute.id WHERE (position_attribute.value <> price_order_position_attribute.value) AND (position_attribute.value <> price_order_position_attribute.value)) AS "t0" ON t0.price_order_position_id = price_order_position.id
  51. LEFT JOIN "nsi_price_order_supplier" AS "price_order_supplier" ON price_order_supplier.price_order_id = price_order.id
  52. LEFT JOIN "nsi_price_order_supplier_positions" AS "price_order_supplier_position" ON price_order_supplier_position.price_order_supplier_id = price_order_supplier.id AND price_order_supplier_position.price_order_position_id = price_order_position.id
  53. LEFT JOIN "nsi_supplier_position" AS "supplier_position" ON supplier_position.dictionary_position_id = dictionary_position.id
  54. LEFT JOIN "nsi_supplier_position_cond" AS "supplier_position_cond" ON supplier_position_cond.nsi_supplier_position_id = supplier_position.id AND supplier_position_cond.price = price_order_supplier_position.price
  55. LEFT JOIN "nsi_supplier_position_regions" AS "supplier_position_region" ON supplier_position_region.nsi_supplier_position_cond_id = supplier_position_cond.id WHERE (t0.price_order_position_id IS NULL) AND (price_order.id = 968) GROUP BY "supplier_position"."contragent_id") AS "price_order_supplier_region" ON price_order_supplier_region.contragent_id = contragent.id
  56. LEFT JOIN "nsi_price_order_supplier" AS "price_order_supplier" ON price_order_supplier.price_order_id = 968 AND price_order_supplier.contragent_id = t1.contragent_id
  57. INNER JOIN "nsi_price_order" AS "price_order" ON price_order.id = 968
  58. LEFT JOIN "nsi_pmi_composite_supplier_values" AS "pmi_composite_supplier_values" ON pmi_composite_supplier_values.contragent_id = contragent.id WHERE (price_order.id = 968)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement