|
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 |
|
""" |
|
} |
|
|