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