Project

General

Profile

Bug #1952 » CBIATMTOPYCPOTARIF.sql

Tri Rizqiaty, 01/24/2023 02:41 PM

 
1
??USE [MinovaES_BIA_Dev]
2

3
GO
4

5
/****** Object:  StoredProcedure [dbo].[CBIATMTOPYCPOTARIF]    Script Date: 24/01/2023 11.14.01 ******/
6

7
SET ANSI_NULLS ON
8

9
GO
10

11
SET QUOTED_IDENTIFIER ON
12

13
GO
14

15
ALTER PROCEDURE [dbo].[CBIATMTOPYCPOTARIF]
16

17
(
18

19
	@EmployeeID VARCHAR(20)
20

21
	,@StartDate VARCHAR(20)
22

23
	,@EndDate VARCHAR(20)
24

25
)
26

27
AS
28

29

30

31
--DECLARE @EmployeeID VARCHAR(20) = '16020412'
32

33
--DECLARE @StartDate VARCHAR(20) = '20230101'
34

35
--DECLARE @EndDate VARCHAR(20) = '20230131'
36

37

38

39
DECLARE @CTARIF TABLE
40

41
(
42

43
	EmployeeID VARCHAR(20)
44

45
	,TipeCPO VARCHAR(20)
46

47
	,PKS01 DECIMAL(22,2)
48

49
	,PKS02 DECIMAL(22,2)
50

51
	,PKS03 DECIMAL(22,2)
52

53
)
54

55

56

57
INSERT INTO @CTARIF
58

59
SELECT @EmployeeID, * FROM (SELECT TipeCPO, FieldName, Tarif FROM CTARIFCPO ) AS SourceTable
60

61
PIVOT (MAX(Tarif)
62

63
FOR FieldName IN
64

65
(	[PKS01],
66

67
	[PKS02],
68

69
	[PKS03])
70

71
) AS pvt
72

73

74

75
DECLARE @TblResult TABLE
76

77
(
78

79
	EmployeeID VARCHAR(20)
80

81
	,CPORett VARCHAR(20)
82

83
	,CPO2Rett VARCHAR(20)
84

85
	,CPO3Rett VARCHAR(20)
86

87
	,TarifCPORett DECIMAL(22,0)
88

89
	,TarifCPO2Rett DECIMAL(22,0)
90

91
	,TarifCPO3Rett DECIMAL(22,0)
92

93
)
94

95

96

97
INSERT INTO @TblResult
98

99
SELECT DISTINCT md.EmployeeID, md.CPORett,  md.CPO2Rett,  md.CPO3Rett 
100

101
				,CONVERT(DECIMAL(22,2),CONVERT(DECIMAL(18,2),CASE WHEN md.PKS1Tersus <> '' THEN md.PKS1Tersus ELSE 0 END) * tarif.PKS01) AS TarifCPORett
102

103
				,CONVERT(DECIMAL(22,2),CONVERT(DECIMAL(18,2),CASE WHEN md.PKS2Tersus <> '' THEN md.PKS2Tersus ELSE 0 END) * tarif.PKS02) AS TarifCPO2Rett
104

105
				,CONVERT(DECIMAL(22,2),CONVERT(DECIMAL(18,2),CASE WHEN md.PKS3Tersus <> '' THEN md.PKS3Tersus ELSE 0 END) * tarif.PKS03) AS TarifCPO3Rett
106

107
FROM dbo.CUSPYDATACPO  AS md 
108

109
LEFT JOIN @CTARIF AS tarif
110

111
	ON md.EmployeeID = tarif.EmployeeID
112

113
WHERE  md.EmployeeID = @EmployeeID
114

115
	AND (md.StartDate BETWEEN @StartDate AND @EndDate)
116

117
	AND (md.NoUnit = TipeCPO)
118

119

120

121
SELECT DISTINCT EmployeeID
122

123
			,SUM(TarifCPORett) AS TarifCPORett
124

125
			,SUM(TarifCPO2Rett) AS TarifCPO2Rett
126

127
			,SUM(TarifCPO3Rett) AS TarifCPO3Rett
128

129
FROM @TblResult
130

131
GROUP BY EmployeeID
(2-2/5)