Merge branch 'fix-shipping-invoice-value-sum-error' into 'main'

Fix logic for summing invoice value

See merge request cief-data/dbt_cloud!43
This commit is contained in:
CIEF ACC1
2024-08-07 09:55:09 +00:00
@@ -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