Spaces:
Sleeping
Sleeping
queries = { | |
"query_seller_net_data": """ | |
WITH seller_net_data AS ( | |
SELECT | |
company_id, | |
company_name, | |
ordering_channel, | |
segement_code, | |
sales_channel, | |
settlement_model, | |
settlement_model_code, | |
order_type, | |
order_date, | |
fiscal_year, | |
bag_id, | |
settlement_type, | |
recon_status, | |
return_window_date, | |
payout_window_date, | |
expected_payout_date, | |
sett_no, | |
sett_id, | |
mrp, | |
seller_discounts, | |
store_discount_amount, | |
bca, | |
product_gst_perc, | |
round(vog,2) as vog, | |
tds_on_bca, | |
tcs_on_vog, | |
seller_fees, | |
seller_tender_value, | |
round(seller_net_collection,2) as seller_net_collection, | |
ROUND(mrp - seller_discounts - store_discount_amount,2) AS bca_cc, | |
ROUND(bca - (mrp - seller_discounts - store_discount_amount),2) AS diff_bca_cc, | |
ROUND((mrp - seller_discounts - store_discount_amount) * 100 / (100 + ABS(product_gst_perc)), 2) AS vog_cc, | |
ROUND(vog - ROUND((mrp - seller_discounts - store_discount_amount) * 100 / (100 + ABS(product_gst_perc)), 2),2) AS diff_vog_cc, | |
-- TDS calculation logic | |
CASE | |
WHEN segement_code IN ("FY", "UN") AND DATE(order_date) >= '2024-10-01' THEN | |
ROUND((mrp - seller_discounts - store_discount_amount), 2) * 0.001 | |
WHEN segement_code IN ("FY", "UN") AND DATE(order_date) < '2024-10-01' THEN | |
ROUND((mrp - seller_discounts - store_discount_amount), 2) * 0.01 | |
ELSE 0 | |
END AS tds_cc, | |
-- TCS calculation logic | |
CASE | |
WHEN segement_code IN ("FY", "UN") AND DATE(order_date) >= '2024-07-10' THEN | |
ROUND((mrp - seller_discounts - store_discount_amount) * 100 / (100 + ABS(product_gst_perc)), 2) * 0.005 | |
WHEN segement_code IN ("FY", "UN") AND DATE(order_date) < '2024-07-10' THEN | |
ROUND((mrp - seller_discounts - store_discount_amount) * 100 / (100 + ABS(product_gst_perc)), 2) * 0.01 | |
ELSE 0 | |
END AS tcs_cc | |
FROM | |
`fynd-db.finance_recon_tool_asia.09_seller_net_collection_daily` | |
WHERE | |
expected_payout_date BETWEEN "{start_date}" AND "{end_date}" | |
), | |
-- Subquery to count occurrences of each bag_id and concatenation of bag_id and settlement_type | |
bag_con_count_data AS ( | |
SELECT | |
bag_id, | |
settlement_type, | |
COUNT(*) AS bagg_count, | |
CONCAT(bag_id, settlement_type) AS bag_settlement_concat, | |
COUNT(CONCAT(bag_id, settlement_type)) AS bag_settlement_concat_count -- Count of concatenated values | |
FROM | |
seller_net_data | |
GROUP BY | |
bag_id, settlement_type | |
) | |
-- Final query | |
SELECT | |
sd.*, | |
ROUND((tds_cc - tds_on_bca), 2) AS diff_tds, | |
ROUND((tcs_cc - tcs_on_vog), 2) AS diff_tcs, | |
ROUND((mrp - seller_discounts - store_discount_amount - seller_tender_value + seller_fees),2) AS seller_sale_cc, | |
ROUND(((mrp - seller_discounts - store_discount_amount - seller_tender_value + seller_fees) - tds_cc - tcs_cc),2) AS seller_net_cc, | |
ROUND(((mrp - seller_discounts - store_discount_amount - seller_tender_value + seller_fees) - tds_cc - tcs_cc - seller_net_collection), 2) AS net_diff_cc, | |
CONCAT(sd.bag_id, ",") AS conccat, -- Concatenated bag_id | |
CONCAT(sd.bag_id, sd.settlement_type) AS bag_cc, -- Bag ID with settlement type | |
bcc.bagg_count AS bag_count, -- Count of each bag_id and settlement type | |
bcc.bag_settlement_concat AS bag_con, -- Concatenated bag_id and settlement_type | |
bcc.bag_settlement_concat_count AS bag_con_count, -- Count of concatenated values | |
CASE | |
WHEN order_type = 'COD' THEN CONCAT(company_id, '_', segement_code, '_', settlement_model_code, '_', order_type, '_V') | |
WHEN order_type = 'PPD' THEN CONCAT(company_id, '_', segement_code, '_', settlement_model_code, '_', order_type, '_C') | |
END AS ledger_name | |
FROM | |
seller_net_data sd | |
LEFT JOIN | |
bag_con_count_data bcc | |
ON | |
sd.bag_id = bcc.bag_id AND sd.settlement_type = bcc.settlement_type; | |
""", | |
"query_brand_accounting_entries": """ | |
SELECT | |
DENSE_RANK() OVER (ORDER BY expected_payout_date,company_id,VOUCHERTYPENAME,sales_channel,expected_payout_date,order_type ASC) entry_code, | |
DATE, | |
Mode, | |
VOUCHERTYPENAME, | |
Narration, | |
DebitLedger, | |
AmountDebitLedger, | |
CreditLedger, | |
AmountCreditLedger | |
FROM ( | |
WITH | |
Truth_table AS (SELECT * FROM `fynd-db.Brand_Accounting_Entries_Asia.Brand_Seller_Sale_FY25_Table`) | |
SELECT | |
expected_payout_date, | |
format_date('%Y%m%d', expected_payout_date) as DATE, | |
"Journal" as Mode, | |
VOUCHERTYPENAME, | |
CONCAT(Narration," for ", sales_channel, " for the period ",expected_payout_date ) AS Narration, | |
entry_Type, | |
order_type, | |
A.segement_code, | |
company_id, | |
sales_channel, | |
CASE WHEN seller_sales_amount > 0 AND B.ordering_channel IN ("FY", "FP", "FS", "UN", "OE","OM") AND entity = "seller" AND mop = "COD" THEN ledger_name WHEN seller_sales_amount > 0 AND B.ordering_channel IN ("FY", "FP", "FS", "UN", "OE","OM") AND entity = "seller" AND mop = "PPD" THEN ledger_name ELSE Credit_Ledger END AS DebitLedger, | |
CASE WHEN seller_sales_amount > 0 THEN ROUND(seller_sales_amount*-1) ELSE ROUND(seller_sales_amount) END AS AmountDebitLedger, | |
CASE WHEN seller_sales_amount < 0 AND B.ordering_channel IN ("FY", "FP", "FS", "UN", "OE","OM") AND entity = "seller" AND mop = "COD" THEN ledger_name WHEN seller_sales_amount < 0 AND B.ordering_channel IN ("FY", "FP", "FS", "UN", "OE","OM") AND entity = "seller" AND mop = "PPD" THEN ledger_name ELSE Credit_Ledger END AS CreditLedger, | |
CASE WHEN seller_sales_amount < 0 THEN ROUND(seller_sales_amount)*-1 ELSE ROUND(seller_sales_amount) END AS AmountCreditLedger | |
FROM | |
`fynd-db.Brand_Accounting_Entries_Asia.Seller_sale_Logic` AS A | |
LEFT JOIN | |
Truth_table as B | |
ON | |
A.segement_code = B.ordering_channel | |
AND A.entry_Type = B.Status | |
AND A.order_type = B.mop | |
WHERE | |
order_type = 'COD' | |
AND expected_payout_date BETWEEN '{start_date}' AND '{end_date}' | |
GROUP BY | |
1,2,3,4,5,6,7,8,9,10,11,12,13,14 | |
ORDER BY | |
expected_payout_date,company_id,VOUCHERTYPENAME,sales_channel,order_type ASC | |
) | |
ORDER BY entry_code ASC | |
""" | |
} | |