Improve chart readability and drilldowns
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m11s
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m11s
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import type { DashboardAnalytics, DateRange, OrderData } from '../types';
|
||||
import { filterOrdersByDateRange, getBaseProductName, getOrderItemRevenue, parseOrderDate } from './orders';
|
||||
import { formatDisplayName, removeTrailingSellerId } from '../displayFormatters';
|
||||
import { normalizeUnknownLabel } from '../chartUtils';
|
||||
|
||||
const COLORS = [
|
||||
'#25C2FF', '#18D6B5', '#A06BFF', '#FF6B8A', '#FFC247',
|
||||
@@ -20,6 +21,10 @@ const getProductColor = (name: string): string => {
|
||||
return globalColorMap[name];
|
||||
};
|
||||
|
||||
const formatSellerDisplayName = (value: string) => (
|
||||
normalizeUnknownLabel(formatDisplayName(removeTrailingSellerId(value)), 'Sem vendedor')
|
||||
);
|
||||
|
||||
export interface ChartProductMetric {
|
||||
name: string;
|
||||
id: string;
|
||||
@@ -77,23 +82,23 @@ export const applyDashboardColors = (metrics: DashboardAnalytics): DashboardMetr
|
||||
})),
|
||||
revenueBySeller: (metrics.revenueBySeller || []).map(seller => ({
|
||||
...seller,
|
||||
name: formatDisplayName(removeTrailingSellerId(seller.name)),
|
||||
name: formatSellerDisplayName(seller.name),
|
||||
fill: productColors[seller.name]
|
||||
})),
|
||||
ordersBySeller: (metrics.ordersBySeller || []).map(seller => ({
|
||||
...seller,
|
||||
name: formatDisplayName(removeTrailingSellerId(seller.name)),
|
||||
name: formatSellerDisplayName(seller.name),
|
||||
fill: productColors[seller.name]
|
||||
})),
|
||||
sellerRevenueByDate: (metrics.sellerRevenueByDate || []).map(seller => ({
|
||||
...seller,
|
||||
name: formatDisplayName(removeTrailingSellerId(seller.name)),
|
||||
name: formatSellerDisplayName(seller.name),
|
||||
orders: seller.orders || 0,
|
||||
fill: productColors[seller.name]
|
||||
})),
|
||||
sellerRevenueByHour: (metrics.sellerRevenueByHour || []).map(seller => ({
|
||||
...seller,
|
||||
name: formatDisplayName(removeTrailingSellerId(seller.name)),
|
||||
name: formatSellerDisplayName(seller.name),
|
||||
orders: seller.orders || 0,
|
||||
fill: productColors[seller.name]
|
||||
}))
|
||||
@@ -118,7 +123,7 @@ export const buildDashboardMetrics = (ordersData: OrderData[], dateRange: DateRa
|
||||
filteredData.forEach(order => {
|
||||
const itemRevenue = getOrderItemRevenue(order);
|
||||
const productName = getBaseProductName(order.Descricao_Produto);
|
||||
const sellerName = formatDisplayName(removeTrailingSellerId(order.nome_vendedor || ''));
|
||||
const sellerName = formatSellerDisplayName(order.nome_vendedor || '');
|
||||
const sellerId = order.id_vendedor || sellerName;
|
||||
const orderKey = order.ID_Pedido || `${order.Nome_Cliente}_${order.Data_Pedido}_${order.Valor_Pedido}`;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user