Project

General

Profile

Feature #2165 » CBIATMTOPYTRIPHINOTARIF_20230511.sql

Tri Rizqiaty, 05/11/2023 03:55 PM

 
1
??USE [MinovaES_BIA_Dev]
2

3
GO
4

5
/****** Object:  StoredProcedure [dbo].[CBIATMTOPYTRIPHINOTARIF]    Script Date: 11/05/2023 15.47.14 ******/
6

7
SET ANSI_NULLS ON
8

9
GO
10

11
SET QUOTED_IDENTIFIER ON
12

13
GO
14

15
ALTER PROCEDURE [dbo].[CBIATMTOPYTRIPHINOTARIF]
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) = '13010127'
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
	,DayFlag VARCHAR(20)
46

47
	,TipeTrip01 DECIMAL(22,2)
48

49
	,TipeTrip02 DECIMAL(22,2)
50

51
	,TipeTrip03 DECIMAL(22,2)
52

53
	,TipeTrip04 DECIMAL(22,2)
54

55
	,TipeTrip05 DECIMAL(22,2)
56

57
	,TipeTrip06 DECIMAL(22,2)
58

59
	,TipeTrip07 DECIMAL(22,2)
60

61
	,TipeTrip08 DECIMAL(22,2)
62

63
	,TipeTrip09 DECIMAL(22,2)
64

65
	,TipeTrip10 DECIMAL(22,2)
66

67
	,TipeTrip11 DECIMAL(22,2)
68

69
	,TipeTrip12 DECIMAL(22,2)
70

71
	,TipeTrip13 DECIMAL(22,2)
72

73
	,TipeTrip14 DECIMAL(22,2)
74

75
	,TipeTrip15 DECIMAL(22,2)
76

77
	,TipeTrip16 DECIMAL(22,2)
78

79
	,TipeTrip17 DECIMAL(22,2)
80

81
	,TipeTrip18 DECIMAL(22,2)
82

83
	,TipeTrip19 DECIMAL(22,2)
84

85
	,TipeTrip20 DECIMAL(22,2)
86

87
)
88

89

90

91
INSERT INTO @CTARIF
92

93
SELECT @EmployeeID, 'WORK', * FROM (SELECT FieldName, TarifHariKerja AS Tarif FROM CTARIFTRIPHINODUMPTRUCK) AS SourceTable
94

95
PIVOT (MAX(Tarif)
96

97
FOR FieldName IN
98

99
(	[TipeTrip01],
100

101
	[TipeTrip02],
102

103
	[TipeTrip03],
104

105
	[TipeTrip04],
106

107
	[TipeTrip05],
108

109
	[TipeTrip06],
110

111
	[TipeTrip07],
112

113
	[TipeTrip08],
114

115
	[TipeTrip09],
116

117
	[TipeTrip10],
118

119
	[TipeTrip11],
120

121
	[TipeTrip12],
122

123
	[TipeTrip13],
124

125
	[TipeTrip14],
126

127
	[TipeTrip15],
128

129
	[TipeTrip16],
130

131
	[TipeTrip17],
132

133
	[TipeTrip18],
134

135
	[TipeTrip19],
136

137
	[TipeTrip20])
138

139
) AS pvt
140

141

142

143
INSERT INTO @CTARIF
144

145
SELECT @EmployeeID, 'FREE', * FROM (SELECT FieldName, TarifHariKerja AS Tarif FROM CTARIFTRIPHINODUMPTRUCK) AS SourceTable
146

147
PIVOT (MAX(Tarif)
148

149
FOR FieldName IN
150

151
(	[TipeTrip01],
152

153
	[TipeTrip02],
154

155
	[TipeTrip03],
156

157
	[TipeTrip04],
158

159
	[TipeTrip05],
160

161
	[TipeTrip06],
162

163
	[TipeTrip07],
164

165
	[TipeTrip08],
166

167
	[TipeTrip09],
168

169
	[TipeTrip10],
170

171
	[TipeTrip11],
172

173
	[TipeTrip12],
174

175
	[TipeTrip13],
176

177
	[TipeTrip14],
178

179
	[TipeTrip15],
180

181
	[TipeTrip16],
182

183
	[TipeTrip17],
184

185
	[TipeTrip18],
186

187
	[TipeTrip19],
188

189
	[TipeTrip20])
190

191
) AS pvt
192

193

194

195
DECLARE @TWSCal TABLE
196

197
(
198

199
	DateSpecified VARCHAR(20)
200

201
	,DayFlag VARCHAR(50)
202

203
)
204

205

206

207
INSERT INTO @TWSCal
208

209
SELECT DISTINCT pa125.StartDate, dt.Flag
210

211
FROM dbo.PHRPA0125 AS pa125 WITH (NOLOCK)
212

213
LEFT JOIN dbo.PHRTMDAYTYP AS dt
214

215
	ON dt.DayType = pa125.DayType
216

217
WHERE pa125.EmployeeID = @EmployeeID
218

219
AND (pa125.StartDate BETWEEN @StartDate AND @EndDate)
220

221
AND dt.Flag = 'WORK'
222

223

224

225

226

227
IF( (SELECT COUNT(DateSpecified) FROM @TWSCal) = 0 ) 
228

229
BEGIN
230

231
	INSERT INTO @TWSCal
232

233
	SELECT DISTINCT wscal.DateSpecified, dt.Flag
234

235
	FROM dbo.PHRPA0025 AS pa25 WITH (NOLOCK)
236

237
	LEFT JOIN dbo.PHRTMWSCAL AS wscal WITH (NOLOCK)
238

239
		ON wscal.WorkScheduleType = pa25.WorkScheduleType
240

241
	LEFT JOIN dbo.PHRTMDAYTYP AS dt
242

243
		ON wscal.DayType = dt.DayType
244

245
	WHERE pa25.EmployeeID = @EmployeeID
246

247
		AND (pa25.StartDate <= @EndDate AND pa25.EndDate >= @EndDate)
248

249
		AND (wscal.DateSpecified BETWEEN @StartDate AND @EndDate)
250

251
END
252

253

254

255
DECLARE @TblResult TABLE
256

257
(
258

259
	EmployeeID VARCHAR(20)
260

261
	,StartDate VARCHAR(20)
262

263
	,TipeTrip01 VARCHAR(20)
264

265
	,TipeTrip02 VARCHAR(20)
266

267
	,TipeTrip03 VARCHAR(20)
268

269
	,TipeTrip04 VARCHAR(20)
270

271
	,TipeTrip05 VARCHAR(20)
272

273
	,TipeTrip06 VARCHAR(20)
274

275
	,TipeTrip07 VARCHAR(20)
276

277
	,TipeTrip08 VARCHAR(20)
278

279
	,TipeTrip09 VARCHAR(20)
280

281
	,TipeTrip10 VARCHAR(20)
282

283
	,TipeTrip11 VARCHAR(20)
284

285
	,TipeTrip12 VARCHAR(20)
286

287
	,TipeTrip13 VARCHAR(20)
288

289
	,TipeTrip14 VARCHAR(20)
290

291
	,TipeTrip15 VARCHAR(20)
292

293
	,TipeTrip16 VARCHAR(20)
294

295
	,TipeTrip17 VARCHAR(20)
296

297
	,TipeTrip18 VARCHAR(20)
298

299
	,TipeTrip19 VARCHAR(20)
300

301
	,TipeTrip20 VARCHAR(20)
302

303
	,TarifTipeTrip01 DECIMAL(22,2)
304

305
	,TarifTipeTrip02 DECIMAL(22,2)
306

307
	,TarifTipeTrip03 DECIMAL(22,2)
308

309
	,TarifTipeTrip04 DECIMAL(22,2)
310

311
	,TarifTipeTrip05 DECIMAL(22,2)
312

313
	,TarifTipeTrip06 DECIMAL(22,2)
314

315
	,TarifTipeTrip07 DECIMAL(22,2)
316

317
	,TarifTipeTrip08 DECIMAL(22,2)
318

319
	,TarifTipeTrip09 DECIMAL(22,2)
320

321
	,TarifTipeTrip10 DECIMAL(22,2)
322

323
	,TarifTipeTrip11 DECIMAL(22,2)
324

325
	,TarifTipeTrip12 DECIMAL(22,2)
326

327
	,TarifTipeTrip13 DECIMAL(22,2)
328

329
	,TarifTipeTrip14 DECIMAL(22,2)
330

331
	,TarifTipeTrip15 DECIMAL(22,2)
332

333
	,TarifTipeTrip16 DECIMAL(22,2)
334

335
	,TarifTipeTrip17 DECIMAL(22,2)
336

337
	,TarifTipeTrip18 DECIMAL(22,2)
338

339
	,TarifTipeTrip19 DECIMAL(22,2)
340

341
	,TarifTipeTrip20 DECIMAL(22,2)
342

343
	,TotalTarifTripHino DECIMAL(22,2)
344

345
)
346

347

348

349
INSERT INTO @TblResult
350

351
SELECT DISTINCT md.EmployeeID, md.StartDate, md.TipeTrip01,  md.TipeTrip02,  md.TipeTrip03, md.TipeTrip04, md.TipeTrip05, md.TipeTrip06 
352

353
				,md.TipeTrip07 ,md.TipeTrip08 ,md.TipeTrip09 ,md.TipeTrip10 ,md.TipeTrip11 ,md.TipeTrip12 ,md.TipeTrip13
354

355
				,md.TipeTrip14 ,md.TipeTrip15 ,md.TipeTrip16 ,md.TipeTrip17 ,md.TipeTrip18 ,md.TipeTrip19 ,md.TipeTrip20
356

357
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip01 <> '' THEN md.TipeTrip01 ELSE '0' END) * tarif.TipeTrip01 AS TarifTipeTrip01
358

359
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip02 <> '' THEN md.TipeTrip02 ELSE '0' END) * tarif.TipeTrip02 AS TarifTipeTrip02
360

361
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip03 <> '' THEN md.TipeTrip03 ELSE '0' END) * tarif.TipeTrip03 AS TarifTipeTrip03
362

363
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip04 <> '' THEN md.TipeTrip04 ELSE '0' END) * tarif.TipeTrip04 AS TarifTipeTrip04
364

365
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip05 <> '' THEN md.TipeTrip05 ELSE '0' END) * tarif.TipeTrip05 AS TarifTipeTrip05
366

367
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip06 <> '' THEN md.TipeTrip06 ELSE '0' END) * tarif.TipeTrip06 AS TarifTipeTrip06
368

369
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip07 <> '' THEN md.TipeTrip07 ELSE '0' END) * tarif.TipeTrip07 AS TarifTipeTrip07
370

371
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip08 <> '' THEN md.TipeTrip08 ELSE '0' END) * tarif.TipeTrip08 AS TarifTipeTrip08
372

373
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip09 <> '' THEN md.TipeTrip09 ELSE '0' END) * tarif.TipeTrip09 AS TarifTipeTrip09
374

375
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip10 <> '' THEN md.TipeTrip10 ELSE '0' END) * tarif.TipeTrip10 AS TarifTipeTrip10
376

377
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip11 <> '' THEN md.TipeTrip11 ELSE '0' END) * tarif.TipeTrip11 AS TarifTipeTrip11
378

379
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip12 <> '' THEN md.TipeTrip12 ELSE '0' END) * tarif.TipeTrip12 AS TarifTipeTrip12
380

381
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip13 <> '' THEN md.TipeTrip13 ELSE '0' END) * tarif.TipeTrip13 AS TarifTipeTrip13
382

383
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip14 <> '' THEN md.TipeTrip14 ELSE '0' END) * tarif.TipeTrip14 AS TarifTipeTrip14
384

385
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip15 <> '' THEN md.TipeTrip15 ELSE '0' END) * tarif.TipeTrip15 AS TarifTipeTrip15
386

387
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip16 <> '' THEN md.TipeTrip16 ELSE '0' END) * tarif.TipeTrip16 AS TarifTipeTrip16
388

389
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip17 <> '' THEN md.TipeTrip17 ELSE '0' END) * tarif.TipeTrip17 AS TarifTipeTrip17
390

391
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip18 <> '' THEN md.TipeTrip18 ELSE '0' END) * tarif.TipeTrip18 AS TarifTipeTrip18
392

393
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip19 <> '' THEN md.TipeTrip19 ELSE '0' END) * tarif.TipeTrip19 AS TarifTipeTrip19
394

395
				,CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip20 <> '' THEN md.TipeTrip20 ELSE '0' END) * tarif.TipeTrip20 AS TarifTipeTrip20
396

397
				,(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip01 <> '' THEN md.TipeTrip01 ELSE '0' END) * tarif.TipeTrip01) +
398

399
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip02 <> '' THEN md.TipeTrip02 ELSE '0' END) * tarif.TipeTrip02) +
400

401
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip03 <> '' THEN md.TipeTrip03 ELSE '0' END) * tarif.TipeTrip03) +
402

403
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip04 <> '' THEN md.TipeTrip04 ELSE '0' END) * tarif.TipeTrip04) +
404

405
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip05 <> '' THEN md.TipeTrip05 ELSE '0' END) * tarif.TipeTrip05) +
406

407
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip06 <> '' THEN md.TipeTrip06 ELSE '0' END) * tarif.TipeTrip06) +
408

409
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip07 <> '' THEN md.TipeTrip07 ELSE '0' END) * tarif.TipeTrip07) +
410

411
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip08 <> '' THEN md.TipeTrip08 ELSE '0' END) * tarif.TipeTrip08) +
412

413
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip09 <> '' THEN md.TipeTrip09 ELSE '0' END) * tarif.TipeTrip09) +
414

415
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip10 <> '' THEN md.TipeTrip10 ELSE '0' END) * tarif.TipeTrip10) +
416

417
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip11 <> '' THEN md.TipeTrip11 ELSE '0' END) * tarif.TipeTrip11) +
418

419
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip12 <> '' THEN md.TipeTrip12 ELSE '0' END) * tarif.TipeTrip12) +
420

421
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip13 <> '' THEN md.TipeTrip13 ELSE '0' END) * tarif.TipeTrip13) +
422

423
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip14 <> '' THEN md.TipeTrip14 ELSE '0' END) * tarif.TipeTrip14) +
424

425
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip15 <> '' THEN md.TipeTrip15 ELSE '0' END) * tarif.TipeTrip15) +
426

427
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip16 <> '' THEN md.TipeTrip16 ELSE '0' END) * tarif.TipeTrip16) +
428

429
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip17 <> '' THEN md.TipeTrip17 ELSE '0' END) * tarif.TipeTrip17) +
430

431
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip18 <> '' THEN md.TipeTrip18 ELSE '0' END) * tarif.TipeTrip18) +
432

433
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip19 <> '' THEN md.TipeTrip19 ELSE '0' END) * tarif.TipeTrip19) +
434

435
				(CONVERT(DECIMAL(22,2),CASE WHEN md.TipeTrip20 <> '' THEN md.TipeTrip20 ELSE '0' END) * tarif.TipeTrip20) AS TotalTarifTripHino
436

437
FROM dbo.MDTRIPHINODUMPTRUCK  AS md 
438

439
LEFT JOIN @TWSCal AS twscal
440

441
	ON md.StartDate = twscal.DateSpecified
442

443
LEFT JOIN @CTARIF AS tarif
444

445
	ON md.EmployeeID = tarif.EmployeeID
446

447
	AND twscal.DayFlag = tarif.DayFlag
448

449
WHERE  md.EmployeeID = @EmployeeID
450

451
	AND (md.StartDate BETWEEN @StartDate AND @EndDate)
452

453

454

455
SELECT DISTINCT EmployeeID
456

457
				,SUM(TotalTarifTripHino) AS TotalTarifTripHino
458

459
FROM @TblResult
460

461
GROUP BY EmployeeID
(2-2/2)