feat: add district filter (Hiraa/AsSaffiyah) from static mapping
- ETL writes District column to NocoDB DailySales - Museums mapped: Hiraa (Revelation, Holy Quraan, Trail, Makkah, VIP) AsSaffiyah (Creation Story, Best of Creation) - District filter added to Dashboard and Comparison (cascades to museum) - District Performance chart added (desktop + mobile) - Locale keys added for both EN and AR Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { fetchSales } from './erpClient';
|
||||
import { discoverTableIds, deleteRowsByMonth, deleteAllRows, insertRecords } from './nocodbClient';
|
||||
import { getMuseumsFromProduct, getChannelLabel } from '../config/museumMapping';
|
||||
import { getMuseumsFromProduct, getChannelLabel, getDistrict } from '../config/museumMapping';
|
||||
import type { ERPSaleRecord, AggregatedRecord } from '../types';
|
||||
|
||||
function generateMonthBoundaries(startYear: number, startMonth: number): Array<[string, string]> {
|
||||
@@ -51,12 +51,14 @@ export function aggregateTransactions(sales: ERPSaleRecord[]): AggregatedRecord[
|
||||
? museums.filter(m => m !== museum).join(', ')
|
||||
: '';
|
||||
const ticketType = isCombo ? 'combo' : 'single';
|
||||
const district = getDistrict(museum);
|
||||
const key = `${date}|${museum}|${channel}|${ticketType}`;
|
||||
|
||||
let entry = map.get(key);
|
||||
if (!entry) {
|
||||
entry = {
|
||||
Date: date,
|
||||
District: district,
|
||||
MuseumName: museum,
|
||||
Channel: channel,
|
||||
TicketType: ticketType,
|
||||
|
||||
Reference in New Issue
Block a user