diff --git a/client/src/components/CalendarGrid.tsx b/client/src/components/CalendarGrid.tsx
index d705b8c..61b7836 100644
--- a/client/src/components/CalendarGrid.tsx
+++ b/client/src/components/CalendarGrid.tsx
@@ -178,6 +178,17 @@ export default function CalendarGrid({
const getPublicitiesForDate = (date: Date) => {
const dateStr = format(date, 'yyyy-MM-dd');
+ console.log('🔍 CalendarGrid getPublicitiesForDate:', {
+ date: dateStr,
+ totalPublicities: publicities.length,
+ selectedStoreId,
+ userGroups: userGroups.length
+ });
+
+ if (publicities.length > 0) {
+ console.log('📄 Sample publicity structure:', publicities[0]);
+ }
+
return publicities.filter(pub => {
// Check if the date is within the publicity period
const pubStart = pub.startDate;
@@ -194,14 +205,22 @@ export default function CalendarGrid({
// If a specific store is selected, check if that store participates
if (selectedStoreId) {
- return pub.participatingGroups?.some((pg: any) => pg.groupId === selectedStoreId);
+ const matches = pub.participations?.some((pg: any) => pg.groupId === selectedStoreId);
+ if (matches) {
+ console.log('🎯 Publicity matches selected store:', { pubNumber: pub.pubNumber, selectedStoreId });
+ }
+ return matches;
}
// If no specific store selected but user has assigned stores,
// show publicities where any of user's stores participate
if (userGroups && userGroups.length > 0) {
const userGroupIds = userGroups.map((ug: any) => ug.groupId);
- return pub.participatingGroups?.some((pg: any) => userGroupIds.includes(pg.groupId));
+ const matches = pub.participations?.some((pg: any) => userGroupIds.includes(pg.groupId));
+ if (matches) {
+ console.log('👥 Publicity matches user groups:', { pubNumber: pub.pubNumber, userGroupIds });
+ }
+ return matches;
}
return true;
@@ -358,7 +377,7 @@ export default function CalendarGrid({
pg.group?.name).join(', ')}` : ''}`}
+ title={`Pub ${pub.pubNumber}: ${pub.designation}${pub.participations ? ` - Magasins: ${pub.participations.map((pg: any) => pg.group?.name).join(', ')}` : ''}`}
>
{pub.pubNumber}
diff --git a/server/storage.ts b/server/storage.ts
index c47807c..6af2a79 100644
--- a/server/storage.ts
+++ b/server/storage.ts
@@ -875,6 +875,8 @@ export class DatabaseStorage implements IStorage {
// Publicity operations
async getPublicities(year?: number, groupIds?: number[]): Promise {
+ console.log('🔍 getPublicities called with:', { year, groupIds });
+
const query = db.select({
id: publicities.id,
pubNumber: publicities.pubNumber,
@@ -903,6 +905,7 @@ export class DatabaseStorage implements IStorage {
}
const results = await query;
+ console.log('📢 Raw publicities found:', results.length);
// Récupérer les participations séparément
const publicityIds = results.map((pub: any) => pub.id);
@@ -918,9 +921,11 @@ export class DatabaseStorage implements IStorage {
.from(publicityParticipations)
.innerJoin(groups, eq(publicityParticipations.groupId, groups.id))
.where(inArray(publicityParticipations.publicityId, publicityIds)) : [];
+
+ console.log('🏪 Participations found:', participations.length);
// Associer les participations aux publicités
- return results.map((pub: any) => ({
+ const finalResult = results.map((pub: any) => ({
...pub,
participations: participations
.filter((p: any) => p.publicityId === pub.id)
@@ -930,7 +935,18 @@ export class DatabaseStorage implements IStorage {
group: p.group,
createdAt: new Date()
}))
- })) as PublicityWithRelations[];
+ }));
+
+ console.log('✅ Final publicities with participations:', finalResult.length);
+ if (finalResult.length > 0) {
+ console.log('📄 Sample publicity:', {
+ id: finalResult[0].id,
+ pubNumber: finalResult[0].pubNumber,
+ participations: finalResult[0].participations.map((p: any) => ({ groupId: p.groupId, groupName: p.group?.name }))
+ });
+ }
+
+ return finalResult as PublicityWithRelations[];
}
async getPublicity(id: number): Promise {
@@ -2108,7 +2124,7 @@ class MemStorage implements IStorage {
async createSavTicketHistory(): Promise { return {}; }
async updateSavTicketHistory(): Promise { return {}; }
async deleteSavTicketHistory(): Promise {}
- async getPublicities(): Promise { return []; }
+
async getPublicity(): Promise { return undefined; }
async createPublicity(): Promise { return {}; }
async updatePublicity(): Promise { return {}; }