2026-10-08 10:51:14 +00:00
|
|
|
CREATE OR ALTER VIEW [dbo].[Prj_V_PersonnelManMonth]
|
|
|
|
|
AS
|
|
|
|
|
SELECT
|
|
|
|
|
r.[Id], r.[TenantId], r.[IsDeleted],
|
|
|
|
|
p.[Id] AS [ProjectId], p.[ProjectNo], p.[Name] AS [ProjectName],
|
|
|
|
|
w.[Id] AS [WorkPackageId], w.[Code] AS [WorkPackageCode], w.[Name] AS [WorkPackageName],
|
|
|
|
|
r.[Year], r.[Month], DATEFROMPARTS(r.[Year], r.[Month], 1) AS [PeriodDate],
|
|
|
|
|
r.[UserId],
|
|
|
|
|
r.[Rate] AS [ManMonthValue],
|
|
|
|
|
CAST(ISNULL(u.[Rate], 100) AS decimal(18, 4)) AS [MonthlyRate],
|
|
|
|
|
CAST(r.[Rate] * ISNULL(u.[Rate], 100) / 100.0 AS decimal(18, 4)) AS [EffectiveRate],
|
|
|
|
|
CAST(ISNULL(pm.[AvgMonthlyCost], 0) AS decimal(18, 4)) AS [UnitCost],
|
2026-10-14 19:26:03 +00:00
|
|
|
CAST(ISNULL(pm.[AvgMonthlyCost], 0) * r.[Rate] * ISNULL(u.[Rate], 100) / 10000.0 AS decimal(18, 4)) AS [TotalCost],
|
|
|
|
|
p.[BranchId]
|
2026-10-08 10:51:14 +00:00
|
|
|
FROM [dbo].[Prj_T_WorkPackageMonthRate] r
|
|
|
|
|
INNER JOIN [dbo].[Prj_T_WorkPackage] w ON w.[Id] = r.[WorkPackageId] AND w.[IsDeleted] = 0
|
|
|
|
|
INNER JOIN [dbo].[Prj_T_Project] p ON p.[Id] = w.[ProjectId] AND p.[IsDeleted] = 0
|
|
|
|
|
LEFT JOIN [dbo].[Prj_T_UserMonthRate] u
|
|
|
|
|
ON u.[UserId] = r.[UserId] AND u.[Year] = r.[Year] AND u.[Month] = r.[Month]
|
|
|
|
|
AND (u.[TenantId] = r.[TenantId] OR (u.[TenantId] IS NULL AND r.[TenantId] IS NULL)) AND u.[IsDeleted] = 0
|
|
|
|
|
LEFT JOIN [dbo].[Prj_T_ProjectMember] pm
|
|
|
|
|
ON pm.[ProjectId] = p.[Id] AND pm.[UserId] = r.[UserId] AND pm.[IsDeleted] = 0
|
|
|
|
|
GO
|