diff --git a/models/marts/reporting/rep_shipping__active_company_order_usages.sql b/models/marts/reporting/rep_shipping__active_company_order_usages.sql deleted file mode 100644 index d9e1bab..0000000 --- a/models/marts/reporting/rep_shipping__active_company_order_usages.sql +++ /dev/null @@ -1,171 +0,0 @@ -{% set time_grain_list = ["month", "quarter", "year"] %} -{% set monthly_cbm_rank_list = [1.25, 5, 20] %} -- 0->1.25 40% 1.25->5 40% 5->20 15% 20->onward 5% -{% set quarterly_cbm_rank_list = [1.75, 10, 30] %} -{% set yearly_cbm_rank_list = [2.5, 20, 60] %} - --- IMPORT -WITH shipping_companies AS ( - SELECT * FROM {{ ref('dim_shipping__companies') }} -), - -origin_warehouse_shipping_packing_lists AS ( - SELECT * FROM {{ ref('fct_shipping__origin_warehouse_shipping_packing_lists') }} -), - -dates AS ( - SELECT * FROM {{ ref('dim__dates') }} -), - --- LOGIC -{% for time_grain in time_grain_list %} - sub_company_first_time_order_{{time_grain}} AS ( - SELECT - origin_warehouse_shipping_packing_lists.sub_company_id, - shipping_companies.sub_company_marking_id, - MIN(dates.first_day_of_{{time_grain}}) AS company_first_time_order_{{time_grain}} - - FROM origin_warehouse_shipping_packing_lists - - LEFT JOIN shipping_companies - ON (origin_warehouse_shipping_packing_lists.sub_company_id = shipping_companies.sub_company_id) - - LEFT JOIN dates - ON (date(origin_warehouse_shipping_packing_lists.origin_warehouse_shipping_order_created_datetime) = dates.date_day) - - GROUP BY - origin_warehouse_shipping_packing_lists.sub_company_id, - shipping_companies.sub_company_marking_id - - ), - - origin_warehouse_shipping_packing_list_{{time_grain}} AS ( - SELECT - origin_warehouse_shipping_packing_lists.*, - dates.first_day_of_{{time_grain}} AS origin_warehouse_shipping_order_created_{{time_grain}} - - FROM origin_warehouse_shipping_packing_lists - - LEFT JOIN dates - ON (date(origin_warehouse_shipping_packing_lists.origin_warehouse_shipping_order_created_datetime) = dates.date_day) - ), - - register_date_and_company_id_combination_{{time_grain}} AS ( - SELECT - DISTINCT c.company_first_time_order_{{time_grain}} AS event_date, - '{{time_grain|upper}}LY' AS time_grain_filter, - c1.sub_company_id, - c1.sub_company_marking_id - - FROM sub_company_first_time_order_{{time_grain}} AS c - - CROSS JOIN sub_company_first_time_order_{{time_grain}} AS c1 - - WHERE c.company_first_time_order_{{time_grain}} >= c1.company_first_time_order_{{time_grain}} - - ORDER BY event_date - ), - - company_sale_by_time_grain_{{time_grain}} AS ( - SELECT - register_date_and_company_id_combination_{{time_grain}}.event_date, - register_date_and_company_id_combination_{{time_grain}}.time_grain_filter, - register_date_and_company_id_combination_{{time_grain}}.sub_company_id, - register_date_and_company_id_combination_{{time_grain}}.sub_company_marking_id, - - SUM(IFF(origin_warehouse_shipping_order_status = 'APPROVED' OR - origin_warehouse_shipping_order_status = 'COMPLETED', - total_order_cbm, - 0)) AS total_cbm_completed_approved, - - COUNT(DISTINCT(IFF(origin_warehouse_shipping_order_status = 'APPROVED' OR - origin_warehouse_shipping_order_status = 'COMPLETED', - old_origin_warehouse_shipping_packing_list_id, - NULL))) AS total_order_completed_approved, - - {% if time_grain == "month" -%} - {%- set cbm_rank_list = monthly_cbm_rank_list -%} - {%- elif time_grain == "quarter"%} - {%- set cbm_rank_list = quarterly_cbm_rank_list -%} - {%- elif time_grain == "year"%} - {%- set cbm_rank_list = yearly_cbm_rank_list -%} - {%- else -%} - {%- set cbm_rank_list = [] -%} - {%- endif -%} - - CASE - WHEN total_cbm_completed_approved = 0 - THEN 'NO_USAGE' - WHEN total_cbm_completed_approved <= {{cbm_rank_list[0]}} - THEN 'LOW_USAGE' - WHEN (total_cbm_completed_approved > {{cbm_rank_list[0]}} AND total_cbm_completed_approved <= {{cbm_rank_list[1]}}) - THEN 'MEDIUM_USAGE' - WHEN (total_cbm_completed_approved > {{cbm_rank_list[1]}} AND total_cbm_completed_approved <= {{cbm_rank_list[2]}}) - THEN 'HIGH_USAGE' - WHEN total_cbm_completed_approved > {{cbm_rank_list[2]}} - THEN 'SUPER_HIGH_USAGE' - ELSE 'ERROR' - END AS company_usage_type, - - CASE - WHEN total_order_completed_approved = 0 - THEN 'NO_ORDER' - WHEN MAX(is_first_time_sub_company) = 1 - THEN 'FIRST_TIME_ORDER' - WHEN LAG(total_order_completed_approved) OVER (PARTITION BY register_date_and_company_id_combination_{{time_grain}}.time_grain_filter, register_date_and_company_id_combination_{{time_grain}}.sub_company_id, register_date_and_company_id_combination_{{time_grain}}.sub_company_marking_id ORDER BY event_date) != 0 - THEN 'RECURRING_ORDER' - WHEN LAG(total_order_completed_approved) OVER (PARTITION BY register_date_and_company_id_combination_{{time_grain}}.time_grain_filter, register_date_and_company_id_combination_{{time_grain}}.sub_company_id, register_date_and_company_id_combination_{{time_grain}}.sub_company_marking_id ORDER BY event_date) = 0 - THEN 'REACTIVE_ORDER' - ELSE 'ERROR' - END AS event_type - - - FROM register_date_and_company_id_combination_{{time_grain}} - - LEFT JOIN origin_warehouse_shipping_packing_list_{{time_grain}} - ON (register_date_and_company_id_combination_{{time_grain}}.sub_company_id = origin_warehouse_shipping_packing_list_{{time_grain}}.sub_company_id - AND - register_date_and_company_id_combination_{{time_grain}}.event_date = origin_warehouse_shipping_packing_list_{{time_grain}}.origin_warehouse_shipping_order_created_{{time_grain}}) - - GROUP BY - register_date_and_company_id_combination_{{time_grain}}.event_date, - register_date_and_company_id_combination_{{time_grain}}.time_grain_filter, - register_date_and_company_id_combination_{{time_grain}}.sub_company_id, - register_date_and_company_id_combination_{{time_grain}}.sub_company_marking_id - ), - -{% endfor %} - -union_all_time_grain AS ( - {% for time_grain in time_grain_list %} - SELECT * FROM company_sale_by_time_grain_{{time_grain}} - {%- if not loop.last %} UNION{% endif -%} - {% endfor %} -), - ---FINAL -final__rep_shipping__company_order_usages AS ( - SELECT - -- ids - {{ dbt_utils.generate_surrogate_key(['event_date', 'time_grain_filter', 'sub_company_id']) }} AS company_order_usage_sk, - sub_company_id, - sub_company_marking_id, - - -- dimensions - time_grain_filter, - company_usage_type, - event_type, - - -- measures - total_cbm_completed_approved, - total_order_completed_approved, - - -- date/times - event_date, - - -- metadata - '{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime - - FROM union_all_time_grain -) - -SELECT * FROM final__rep_shipping__company_order_usages \ No newline at end of file