Advertisement
jacky_di

final_cost

Mar 17th, 2022
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. WITH packs AS (
  2.  
  3. select
  4. packages."_id"
  5. , packages."Date" AS pack_date
  6. , "packages"."DeliveryDate" AS delivery_date
  7. , "SubscriptionSettings.ProductCode" as product_code
  8. , COALESCE(packages_menu."Menu.Items.DishCode", menus."Meals.Containers._id") as "dish_id"
  9. -- , count(packages."_id") over(PARTITION BY packages."_id" ORDER BY "packages"."DeliveryDate" ROWS BETWEEN unbounded preceding AND unbounded following) as "dishes_in_packs"
  10. -- , count(COALESCE(packages_menu."Menu.Items.DishCode", menus."Meals.Containers._id")) over(PARTITION BY packages."_id" ORDER BY "packages"."DeliveryDate" ROWS BETWEEN unbounded preceding AND unbounded following) as "dishes"
  11. , "SubscriptionSettings.Count" as "packs_count"
  12. , packages_menu."Menu.Items.OriginalDishCode" as "original_dish_id"
  13. , case when packages_menu."Menu.Items.DishCode" != packages_menu."Menu.Items.OriginalDishCode" then true
  14.        else false
  15.        end as "replaced"  
  16. , case when packages_menu."Menu.Items.DishCode" != packages_menu."Menu.Items.OriginalDishCode" then "packages"."DeliveryReportGuid"
  17.        else null
  18.        end as "delivery_report_id"        
  19. from packages
  20. left join packages_menu on (packages_menu."_id" = packages."_id"
  21.                         and packages."IsReplaced" is true
  22.                         )                    
  23. left join menus ON (packages."Date"= menus."Date" + '3 hour'
  24.                 aND packages."SubscriptionSettings.ProductCode" = menus."Program"
  25.                 and packages."IsReplaced" is false
  26.                 and menus."IsDeleted" is false
  27.                 )
  28. where packages."State" = 3
  29. and packages."IsDeleted" is false
  30. and packages."Date" >= '2022-01-01'
  31. -- and packages."_id" = '00039e24-67cb-4dbd-b35c-634997077458'
  32. order by packages."_id"
  33. )
  34.  
  35. , prices AS (SELECT DISTINCT
  36.   m."Date" + interval '3 hour' as menu_date
  37. , m."Meals.Containers._id" as dish_id
  38. , m."Meals.Containers.Price"/10000 as dish_price
  39. FROM menus m
  40. WHERE m."Date">='01-11-2021'::timestamp
  41.  
  42. UNION
  43.  
  44.  
  45.  
  46. SELECT DISTINCT
  47.  
  48.  packages."Date" as menu_date
  49. ,"public"."packages_menu"."Menu.Items.DishCode" as dish_id
  50. ,  menus."Meals.Containers.Price"/10000 as dish_price
  51.  
  52. FROM packages_menu
  53. LEFT JOIN "public"."deliveryreports"
  54. ON "public"."packages_menu"."Menu.Items.CookingDeliveryReportId"="public"."deliveryreports"."_id"
  55. LEFT JOIN packages
  56. ON packages_menu."_id"=packages."_id"
  57. INNER JOIN menus ON "PackageGroups.FeedDate"= menus."Date" + '3 hour'
  58.                 AND "packages_menu"."Menu.Items.DishCode"=menus."Meals.Containers._id"
  59. WHERE packages."IsDeleted" is false
  60. and packages."Date">='01-01-2022'::timestamp
  61. and packages."IsReplaced" is true
  62. and packages."State"=3
  63. and NOT "public"."packages_menu"."Menu.Items.DishCode" LIKE "public"."packages_menu"."Menu.Items.OriginalDishCode"
  64.  
  65. UNION
  66.  
  67. SELECT DISTINCT
  68.  
  69.  packages."Date" as menu_date
  70. ,"public"."packages_menu"."Menu.Items.DishCode" as dish_id
  71. ,  retailmenus."Dishes.Price"/10000 as dish_price
  72.  
  73. FROM packages_menu
  74. LEFT JOIN "public"."deliveryreports"
  75. ON "public"."packages_menu"."Menu.Items.CookingDeliveryReportId"="public"."deliveryreports"."_id"
  76. LEFT JOIN packages
  77. ON packages_menu."_id"=packages."_id"
  78. INNER JOIN retailmenus ON "PackageGroups.FeedDate"= retailmenus."Date" + '3 hour'
  79.                 AND "packages_menu"."Menu.Items.DishCode"=retailmenus."Dishes._id"
  80. WHERE packages."IsDeleted" is false
  81. and packages."Date">='01-01-2022'::timestamp
  82. and packages."IsReplaced" is true
  83. and packages."State"=3
  84. and NOT "public"."packages_menu"."Menu.Items.DishCode" LIKE "public"."packages_menu"."Menu.Items.OriginalDishCode")
  85.  
  86. SELECT DISTINCT packs.*,
  87.        prices_1."dish_price" as original_price,
  88.        prices_2."dish_price" as new_price
  89. FROM packs
  90. LEFT JOIN prices as prices_1
  91. ON packs."pack_date"=prices_1."menu_date"
  92. AND packs."original_dish_id"=prices_1."dish_id"
  93. LEFT JOIN prices as prices_2
  94. ON packs."pack_date"=prices_2."menu_date"
  95. AND packs."dish_id"=prices_2."dish_id"
  96.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement