From a00089a40cad438dfc81ed4931724a0cb741e274 Mon Sep 17 00:00:00 2001 From: CIEF ACC1 Date: Wed, 7 Aug 2024 09:53:15 +0000 Subject: [PATCH] Fix logic for summing invoice value --- ...ice_payments_group_by_packing_list_ids.sql | 41 +++++++++++-------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/models/intermediate/int_shipping__packing_list_invoice_payments_group_by_packing_list_ids.sql b/models/intermediate/int_shipping__packing_list_invoice_payments_group_by_packing_list_ids.sql index 4a7082c..14581c7 100644 --- a/models/intermediate/int_shipping__packing_list_invoice_payments_group_by_packing_list_ids.sql +++ b/models/intermediate/int_shipping__packing_list_invoice_payments_group_by_packing_list_ids.sql @@ -3,17 +3,23 @@ WITH stg_shipping__packing_list_invoice_payments AS ( SELECT * FROM {{ ref('stg_shipping__packing_list_invoice_payments') }} ), + -- LOGIC remove_expired_invoice_payments AS ( SELECT - * - + *, + ROW_NUMBER() OVER (PARTITION BY packing_list_invoice_id ORDER BY payment_updated_datetime DESC) AS row_num + FROM stg_shipping__packing_list_invoice_payments WHERE invoice_status != 'EXPIRED' AND payment_status NOT IN ('SUSPENDED','REJECTED') + + QUALIFY + row_num = 1 + ), group_by_packing_list_ids AS ( @@ -21,36 +27,36 @@ group_by_packing_list_ids AS ( old_origin_warehouse_shipping_packing_list_id, invoice_sub_company_id, payment_sub_company_id, - COUNT(DISTINCT(packing_list_invoice_id)) AS number_of_invoice, - COUNT(DISTINCT(packing_list_payment_id)) AS number_of_payment, + COUNT(DISTINCT(packing_list_invoice_id)) AS number_of_invoice, + COUNT(DISTINCT(packing_list_payment_id)) AS number_of_payment, - SUM(invoice_number_of_shipping_fee) AS invoice_number_of_shipping_fee, - SUM(invoice_average_shipping_fee_price_per_quantity)/SUM(invoice_number_of_shipping_fee) AS invoice_average_shipping_fee_price_per_quantity, + SUM(invoice_number_of_shipping_fee) AS invoice_number_of_shipping_fee, + SUM(invoice_average_shipping_fee_price_per_quantity)/SUM(invoice_number_of_shipping_fee) AS invoice_average_shipping_fee_price_per_quantity, SUM(invoice_total_shipping_fee_quantity) AS invoice_total_shipping_fee_quantity, SUM(invoice_total_shipping_fee_value_rm) AS invoice_total_shipping_fee_value_rm, - SUM(invoice_number_of_min_cbm_charge) AS invoice_number_of_min_cbm_charge, - SUM(invoice_average_min_cbm_charge_price_per_quantity)/SUM(invoice_number_of_min_cbm_charge) AS invoice_average_min_cbm_charge_price_per_quantity, + SUM(invoice_number_of_min_cbm_charge) AS invoice_number_of_min_cbm_charge, + SUM(invoice_average_min_cbm_charge_price_per_quantity)/SUM(invoice_number_of_min_cbm_charge) AS invoice_average_min_cbm_charge_price_per_quantity, SUM(invoice_total_min_cbm_charge_quantity) AS invoice_total_min_cbm_charge_quantity, SUM(invoice_total_min_cbm_charge_value_rm) AS invoice_total_min_cbm_charge_value_rm, SUM(invoice_number_of_over_weight_charge) AS invoice_number_of_over_weight_charge, SUM(invoice_average_over_weight_charge_price_per_quantity)/SUM(invoice_number_of_over_weight_charge) AS invoice_average_over_weight_charge_price_per_quantity, SUM(invoice_total_over_weight_charge_quantity) AS invoice_total_over_weight_charge_quantity, SUM(invoice_total_over_weight_charge_value_rm) AS invoice_total_over_weight_charge_value_rm, - SUM(invoice_number_of_custom_charge) AS invoice_number_of_custom_charge, - SUM(invoice_average_custom_charge_price_per_quantity)/SUM(invoice_number_of_custom_charge) AS invoice_average_custom_charge_price_per_quantity, + SUM(invoice_number_of_custom_charge) AS invoice_number_of_custom_charge, + SUM(invoice_average_custom_charge_price_per_quantity)/SUM(invoice_number_of_custom_charge) AS invoice_average_custom_charge_price_per_quantity, SUM(invoice_total_custom_charge_quantity) AS invoice_total_custom_charge_quantity, SUM(invoice_total_custom_charge_value_rm) AS invoice_total_custom_charge_value_rm, - SUM(invoice_value_rm) AS invoice_value_rm, - SUM(invoice_tax_rm) AS invoice_tax_rm, - SUM(invoice_service_charge) AS invoice_service_charge, - SUM(payment_value_rm) AS payment_value_rm, - SUM(payment_tax_rm) AS payment_tax_rm, + SUM(invoice_value_rm) AS invoice_value_rm, + SUM(invoice_tax_rm) AS invoice_tax_rm, + SUM(invoice_service_charge) AS invoice_service_charge, + SUM(CASE WHEN payment_status = 'APPROVED' THEN payment_value_rm ELSE 0 END) AS payment_value_rm, + SUM(CASE WHEN payment_status = 'APPROVED' THEN payment_tax_rm ELSE 0 END) AS payment_tax_rm, SUM(payment_service_charge_rm) AS payment_service_charge_rm, MAX(invoice_created_datetime) AS last_invoice_created_datetime, MAX(payment_created_datetime) AS last_payment_created_datetime, + '{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime - FROM remove_expired_invoice_payments GROUP BY @@ -60,8 +66,10 @@ group_by_packing_list_ids AS ( ), + -- FINAL final__int_shipping__packing_list_invoice_payments_group_by_packing_list_ids AS ( + SELECT -- ids old_origin_warehouse_shipping_packing_list_id, @@ -104,6 +112,7 @@ final__int_shipping__packing_list_invoice_payments_group_by_packing_list_ids AS _dbt_ran_datetime FROM group_by_packing_list_ids + ) SELECT * FROM final__int_shipping__packing_list_invoice_payments_group_by_packing_list_ids \ No newline at end of file