Project

General

Profile

Bug #2094 ยป CBIATMTOPYPERAWATANTARIF_20230330.sql

Tri Rizqiaty, 03/30/2023 09:34 AM

 
1
??USE [MinovaES_BIA_Dev]
2

3
GO
4

5
/****** Object:  StoredProcedure [dbo].[CBIATMTOPYPERAWATANTARIF]    Script Date: 30/03/2023 09.14.22 ******/
6

7
SET ANSI_NULLS ON
8

9
GO
10

11
SET QUOTED_IDENTIFIER ON
12

13
GO
14

15
ALTER PROCEDURE [dbo].[CBIATMTOPYPERAWATANTARIF]
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) = '22012454'
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
    ,[KodeKegiatan] VARCHAR(20)
46

47
    ,[Tarif21] VARCHAR(20)
48

49
    ,[TargetKerjaPerHari] VARCHAR(20)
50

51
    ,[TargetKerjaHariSabtu] VARCHAR(20)
52

53
)
54

55

56

57
INSERT INTO @CTARIF
58

59
SELECT @EmployeeID
60

61
	,[KodeKegiatan]
62

63
	,[Tarif21]
64

65
	,[TargetKerjaPerHari]
66

67
	,[TargetKerjaHariSabtu] 
68

69
FROM CTARIFPERAWATAN
70

71

72

73
DECLARE @TblPerawatan Table
74

75
(
76

77
	EmployeeID VARCHAR(20)
78

79
	,StartDate VARCHAR(20)
80

81
	,Seq DECIMAL(18,0)
82

83
	,HasilKerja1 DECIMAL(22,2)
84

85
	,HasilKerja2 DECIMAL(22,2)
86

87
	,HasilKerja3 DECIMAL(22,2)
88

89
	,HasilKerja4 DECIMAL(22,2)
90

91
	,HasilKerja5 DECIMAL(22,2)
92

93
	,TotalHasilKerja DECIMAL(22,2)
94

95
	,LebihTarget DECIMAL(22,2)
96

97
	,KurangTarget DECIMAL(22,2)
98

99
	,SelisihTarget DECIMAL(22,2)
100

101
	,TarifPerawatan21 DECIMAL(22,2)
102

103
	,UpahCapaiTarget DECIMAL(22,2)
104

105
	,PremiCapaiTarget DECIMAL(22,2)
106

107
	,TotalPerawatan DECIMAL(22,2) 
108

109
)
110

111

112

113
INSERT INTO @TblPerawatan
114

115
SELECT DISTINCT md.EmployeeID
116

117
				,md.StartDate
118

119
				,md.Sequence
120

121
				,CASE WHEN md.HasilKerja1 <> '' THEN md.HasilKerja1 ELSE '0' END AS HasilKerja1
122

123
				,CASE WHEN md.HasilKerja2 <> '' THEN md.HasilKerja2 ELSE '0' END AS HasilKerja2
124

125
				,CASE WHEN md.HasilKerja3 <> '' THEN md.HasilKerja3 ELSE '0' END AS HasilKerja3
126

127
				,CASE WHEN md.HasilKerja4 <> '' THEN md.HasilKerja4 ELSE '0' END AS HasilKerja4
128

129
				,CASE WHEN md.HasilKerja4 <> '' THEN md.HasilKerja5 ELSE '0' END AS HasilKerja5
130

131
				,CASE WHEN md.TotalHasilKerja <> '' THEN md.TotalHasilKerja ELSE '0' END AS TotalHasilKerja
132

133
				,CASE WHEN md.LebihTarget <> '' THEN md.LebihTarget ELSE '0' END AS LebihTarget
134

135
				,CASE WHEN md.KurangTarget <> '' THEN md.KurangTarget ELSE '0' END AS KurangTarget
136

137
				----,CASE WHEN md.LebihTarget LIKE '%.%' THEN 'A' ELSE 'B' END
138

139
				,CASE WHEN md.LebihTarget > 0 THEN md.LebihTarget
140

141
					  WHEN md.KurangTarget > 0 THEN md.KurangTarget * -1
142

143
					  ELSE 0 
144

145
				 END SelisihTarget
146

147
				--,CASE WHEN CONVERT(DECIMAL(22,2),md.LebihTarget) > 0 THEN CONVERT(DECIMAL(22,2),md.LebihTarget) 
148

149
				--	  WHEN CONVERT(DECIMAL(22,2),md.KurangTarget) > 0 THEN CONVERT(DECIMAL(22,2),md.KurangTarget) * -1
150

151
				--	  ELSE 0 
152

153
				-- END SelisihTarget
154

155
				,tarif.Tarif21 AS TarifPerawatan21
156

157
				,upah.UpahPokok AS UpahCapaiTarget
158

159
				,upah.PremiBasis AS PremiCapaiTarget
160

161
				,CONVERT(DECIMAL(22,0),
162

163
				 CASE WHEN md.LebihTarget > 0 THEN CONVERT(DECIMAL(22,2),upah.UpahPokok) + upah.PremiBasis + (CONVERT(DECIMAL(22,2),md.LebihTarget) * CONVERT(DECIMAL(22,2),tarif.Tarif21))
164

165
					  WHEN md.KurangTarget > 0 THEN CONVERT(DECIMAL(22,2),upah.UpahPokok) - (CONVERT(DECIMAL(22,2),md.KurangTarget) * CONVERT(DECIMAL(22,2),tarif.Tarif21))
166

167
					  ELSE CONVERT(DECIMAL(22,2),upah.UpahPokok) + CONVERT(DECIMAL(22,2),upah.PremiBasis)
168

169
				 END) AS TotalPerawatan
170

171
				--,CONVERT(DECIMAL(22,0),
172

173
				-- CASE WHEN CONVERT(DECIMAL(22,2),md.LebihTarget) > 0 THEN CONVERT(DECIMAL(22,2),upah.UpahPokok) + CONVERT(DECIMAL(22,2),upah.PremiBasis) + (CONVERT(DECIMAL(22,2),md.LebihTarget) * CONVERT(DECIMAL(22,2),tarif.Tarif21))
174

175
				--	  WHEN CONVERT(DECIMAL(22,2),md.KurangTarget) > 0 THEN CONVERT(DECIMAL(22,2),upah.UpahPokok) - (CONVERT(DECIMAL(22,2),md.KurangTarget) * CONVERT(DECIMAL(22,2),tarif.Tarif21))
176

177
				--	  ELSE CONVERT(DECIMAL(22,2),upah.UpahPokok) + CONVERT(DECIMAL(22,2),upah.PremiBasis)
178

179
				-- END) AS TotalPerawatan
180

181
FROM dbo.CUSPYDATAPREMIPERAWATAN  AS md 
182

183
LEFT JOIN @CTARIF AS tarif
184

185
	ON md.EmployeeID = tarif.EmployeeID
186

187
LEFT JOIN CTARIFBRDPANEN AS upah
188

189
	ON upah.StartDate <= @EndDate AND upah.EndDate >= @EndDate
190

191
WHERE  md.EmployeeID = @EmployeeID
192

193
	AND (md.StartDate BETWEEN @StartDate AND @EndDate)
194

195
	AND (md.KodeKegiatan = tarif.KodeKegiatan)
196

197

198

199

200

201
SELECT distinct result.EmployeeID
202

203
				,MAX(result.TarifPerawatan21) AS TarifPerawatan21
204

205
				,SUM(result.SelisihTarget) AS SelisihTarget
206

207
				,MAX(result.UpahCapaiTarget) AS UpahCapaiTarget
208

209
				,MAX(result.PremiCapaiTarget) AS PremiCapaiTarget
210

211
				,SUM(result.TotalPerawatan) AS TotalPerawatan
212

213
FROM @TblPerawatan AS result
214

215
GROUP BY EmployeeID
    (1-1/1)