Files
CMS/scripts/report-weekly-club-inputs.sql
T
masoodafar-web e7eb50ec35 fix(config): update Seq ServerUrl in cms-config.yaml for correct endpoint
- Changed Seq ServerUrl from HTTPS to HTTP to align with the current server configuration.
2026-10-03 22:00:40 +03:30

96 lines
4.0 KiB
SQL

-- =============================================================================
-- گزارش ساده: ورودی‌های هر هفته باشگاه (+ اسامی)
-- =============================================================================
-- تعریف:
-- Users.Created داخل بازه هفته
-- و ClubMembership.Created هم داخل همان بازه
-- IsActive=1 → فعال | IsActive=0 → غیرفعال
-- =============================================================================
SET NOCOUNT ON;
------------------------------------------------------------
-- ۱) خلاصه هر هفته
------------------------------------------------------------
SELECT
wd.DisplayName AS [هفته],
CONVERT(varchar(10), wd.StartDate, 23) AS [از],
CONVERT(varchar(10), wd.EndDate, 23) AS [تا],
COUNT(DISTINCT CASE
WHEN u.Id IS NOT NULL AND cm.IsActive = 1 THEN u.Id
END) AS [تعداد_فعال],
SUM(CASE
WHEN u.Id IS NOT NULL AND cm.IsActive = 1
THEN ISNULL(NULLIF(cm.InitialContribution, 0), ISNULL(p.ActivationFee, 0))
ELSE 0
END) AS [مبلغ_فعال],
COUNT(DISTINCT CASE
WHEN u.Id IS NOT NULL AND cm.IsActive = 0 THEN u.Id
END) AS [تعداد_غیرفعال],
SUM(CASE
WHEN u.Id IS NOT NULL AND cm.IsActive = 0
THEN ISNULL(NULLIF(cm.InitialContribution, 0), ISNULL(p.ActivationFee, 0))
ELSE 0
END) AS [مبلغ_غیرفعال],
ISNULL((
SELECT SUM(wp.TotalPoolAmount)
FROM CMS.WeeklyCommissionPools wp
WHERE wp.WeekDefinitionId = wd.Id
AND wp.IsDeleted = 0
), 0) AS [استخر_هفته]
FROM CMS.WeekDefinitions wd
LEFT JOIN CMS.Users u
ON u.IsDeleted = 0
AND u.Created >= wd.StartDate
AND u.Created < wd.EndDate
LEFT JOIN CMS.ClubMemberships cm
ON cm.UserId = u.Id
AND cm.IsDeleted = 0
AND cm.Created >= wd.StartDate
AND cm.Created < wd.EndDate
LEFT JOIN CMS.Packages p
ON p.Id = cm.LastPackageId
AND p.IsDeleted = 0
WHERE wd.IsDeleted = 0
GROUP BY
wd.Id,
wd.DisplayName,
wd.StartDate,
wd.EndDate
ORDER BY wd.StartDate DESC;
------------------------------------------------------------
-- ۲) جزئیات اسامی (هر نفر یک ردیف)
------------------------------------------------------------
SELECT
wd.DisplayName AS [هفته],
CONVERT(varchar(10), wd.StartDate, 23) AS [از],
CONVERT(varchar(10), wd.EndDate, 23) AS [تا],
u.Id AS [UserId],
LTRIM(RTRIM(ISNULL(u.FirstName, N'') + N' ' + ISNULL(u.LastName, N''))) AS [نام],
u.Mobile AS [موبایل],
CASE WHEN cm.IsActive = 1 THEN N'فعال' ELSE N'غیرفعال' END AS [وضعیت],
ISNULL(NULLIF(cm.InitialContribution, 0), ISNULL(p.ActivationFee, 0)) AS [مبلغ],
CONVERT(varchar(19), u.Created, 120) AS [تاریخ_ایجاد_کاربر],
CONVERT(varchar(19), cm.Created, 120) AS [تاریخ_ایجاد_عضویت]
FROM CMS.WeekDefinitions wd
INNER JOIN CMS.Users u
ON u.IsDeleted = 0
AND u.Created >= wd.StartDate
AND u.Created < wd.EndDate
INNER JOIN CMS.ClubMemberships cm
ON cm.UserId = u.Id
AND cm.IsDeleted = 0
AND cm.Created >= wd.StartDate
AND cm.Created < wd.EndDate
LEFT JOIN CMS.Packages p
ON p.Id = cm.LastPackageId
AND p.IsDeleted = 0
WHERE wd.IsDeleted = 0
ORDER BY wd.StartDate DESC, cm.IsActive DESC, u.Id;