Project

General

Profile

Feature #4143 » Rpt_IMFI_HR_PY_BankTransfer_New.sql

Tri Rizqiaty, 01/15/2026 04:43 PM

 
1
??ALTER PROCEDURE [dbo].[Rpt_IMFI_HR_PY_BankTransfer_New]
2

3
    @landscape AS VARCHAR(3) ,
4

5
    @companycode AS VARCHAR(5) ,
6

7
    @paygroup AS VARCHAR(50) ,
8

9
    @payperiod AS VARCHAR(6) ,
10

11
    @bank_id AS VARCHAR(2) ,
12

13
    @tgltrans AS VARCHAR(8) ,
14

15
    @key1 AS NVARCHAR(MAX) ,
16

17
    @key2 AS NVARCHAR(MAX)
18

19
AS 
20

21

22

23
--DECLARE @landscape AS VARCHAR(3) 
24

25
--DECLARE @companycode AS VARCHAR(5) 
26

27
--DECLARE @paygroup AS VARCHAR(50) 
28

29
--DECLARE @payperiod AS VARCHAR(6) 
30

31
--DECLARE @bank_id AS VARCHAR(2) 
32

33
--DECLARE @tgltrans AS VARCHAR(8) 
34

35
--SET @landscape = '100'
36

37
--SET @companycode = '1000' 
38

39
--SET @paygroup = '13'
40

41
--SET @payperiod = '202501'
42

43
--SET @bank_id = '02' 
44

45
--SET @tgltrans = '20250101'
46

47

48

49
DECLARE @companyname AS NVARCHAR(50)
50

51
DECLARE @companylogo AS VARBINARY(MAX)
52

53
DECLARE @payrollgroup AS NVARCHAR(50)
54

55
DECLARE @paymonth AS NVARCHAR(2)
56

57
DECLARE @payyear AS NVARCHAR(4)
58

59
DECLARE @begda AS NVARCHAR(8)
60

61
DECLARE @endda AS NVARCHAR(8)
62

63
DECLARE @enddate AS VARCHAR(8)
64

65
SET @paymonth = RIGHT(@payperiod, 2)
66

67
SET @payyear = LEFT(@payperiod, 4)
68

69
SET @begda = @payperiod + '01'
70

71
SET @endda = CONVERT(NVARCHAR(8), DATEADD(d, -1, DATEADD(m, 1, @begda)), 112)
72

73

74

75
DECLARE @last_date AS VARCHAR(12) 
76

77
DECLARE @last_year AS VARCHAR(8)
78

79
DECLARE @last_month AS VARCHAR(8)
80

81
SET @last_date = CONVERT(VARCHAR(6), DATEADD(d, 0, DATEADD(m, -1, @begda)), 112)
82

83
SET @last_year = LEFT(@last_date, 4)
84

85
SET @last_month = RIGHT(@last_date, 2)
86

87

88

89
-----//----- tabel-tabel internal
90

91
DECLARE @tbl_emp TABLE
92

93
(
94

95
    emp_id VARCHAR(8) ,
96

97
    emp_name VARCHAR(250) ,
98

99
    [bank_id] [varchar](2) ,
100

101
    [bank_account] [varchar](50) ,
102

103
    [pay_grade] [varchar](2) ,
104

105
    [tax_status] [varchar](2) ,
106

107
    [npwp] [varchar](50) ,
108

109
    [jamsostek_type] [varchar](4) ,
110

111
    [jamsostek] [varchar](50) ,
112

113
    [jamsostek_level] [varchar](5) ,
114

115
    [cost_center] [varchar](8) ,
116

117
    [employee_area] [varchar](4) ,
118

119
    [employee_office] [varchar](4) ,
120

121
    [employee_status] [varchar](2) ,
122

123
    [employee_type] [varchar](2) ,
124

125
    [employee_subtype] [varchar](2) ,
126

127
    [bank_account_name] [varchar](250) ,
128

129
    [payroll_group] [varchar](2) ,
130

131
    [organization] [varchar](8) ,
132

133
    [position] [varchar](8) ,
134

135
    [job] [varchar](8) ,
136

137
    bank_name VARCHAR(250)
138

139
	,CustomerReff VARCHAR(250)
140

141
	,NoRow DECIMAL(18,0)
142

143
)
144

145

146

147
DECLARE @tbl_tr_enc TABLE
148

149
(
150

151
    landscape VARCHAR(3) ,
152

153
    employee_id VARCHAR(8) ,
154

155
    payPeriodMonth VARCHAR(2) ,
156

157
    payPeriodYear VARCHAR(4) ,
158

159
    runPeriodMonth VARCHAR(2) ,
160

161
    runPeriodYear VARCHAR(4) ,
162

163
    wage_type VARCHAR(4) ,
164

165
    amount VARCHAR(250) ,
166

167
    rate VARCHAR(250) ,
168

169
    flg_retro VARCHAR(3) ,
170

171
    flg_period VARCHAR(20)
172

173
)
174

175

176

177
DECLARE @tbl_tr_dec TABLE
178

179
(
180

181
    landscape VARCHAR(3) ,
182

183
    employee_id VARCHAR(8) ,
184

185
    payPeriodMonth VARCHAR(2) ,
186

187
    payPeriodYear VARCHAR(4) ,
188

189
    runPeriodMonth VARCHAR(2) ,
190

191
    runPeriodYear VARCHAR(4) ,
192

193
    wage_type VARCHAR(4) ,
194

195
    amount INT ,
196

197
    rate INT ,
198

199
    flg_retro VARCHAR(3) ,
200

201
    flg_period VARCHAR(20)
202

203
)
204

205

206

207
DECLARE @tbl_tr_dec_sum TABLE
208

209
(
210

211
    landscape VARCHAR(3) ,
212

213
    employee_id VARCHAR(8) ,
214

215
    payPeriodMonth VARCHAR(2) ,
216

217
    payPeriodYear VARCHAR(4) ,
218

219
    runPeriodMonth VARCHAR(2) ,
220

221
    runPeriodYear VARCHAR(4) ,
222

223
    wage_type VARCHAR(4) ,
224

225
    amount DECIMAL(22,0) ,
226

227
    rate DECIMAL(22,0) ,
228

229
    flg_retro VARCHAR(1) ,
230

231
    flg_period VARCHAR(20)
232

233
)
234

235
	
236

237
DECLARE @tbl_sum TABLE
238

239
(
240

241
    landscape VARCHAR(3) ,
242

243
    runPeriodMonth VARCHAR(2) ,
244

245
    runPeriodYear VARCHAR(4) ,
246

247
	SumAmount DECIMAL(22,0) ,
248

249
	SumRate DECIMAL(22,0) ,
250

251
	SumpEmpID DECIMAL(22,0) ,
252

253
	Cek VARCHAR(250)
254

255
)
256

257

258

259
DECLARE @t_paygroup TABLE ( paygroup VARCHAR(20) )
260

261
	 
262

263
SELECT  @companyname = description ,
264

265
		@companylogo = logo
266

267
FROM base_cust_ref_companycode
268

269
WHERE (landscape = @landscape) AND (companycode = @companycode)
270

271

272

273
SELECT @payrollgroup = description
274

275
FROM base_cust_ref_payroll_group
276

277
WHERE (landscape = @landscape) AND (payroll_group = @paygroup)
278

279

280

281
-----//----- pengambilan data employee
282

283
INSERT  INTO @tbl_emp
284

285
SELECT  tr300.employee_id ,
286

287
        md1.full_name ,
288

289
        md3.[bank_id] ,
290

291
        md3.[bank_account] ,
292

293
        md3.[pay_grade] ,
294

295
        md3.[tax_status] ,
296

297
        md3.[npwp] ,
298

299
        md3.[jamsostek_type] ,
300

301
        md3.[jamsostek] ,
302

303
        md3.[jamsostek_level] ,
304

305
        tr300.[cost_center] ,
306

307
        tr300.[employee_area] ,
308

309
        tr300.[employee_office] ,
310

311
        tr300.[employee_status] ,
312

313
        tr300.[employee_type] ,
314

315
        tr300.[employee_subtype] ,
316

317
        md3.[bank_account_name] ,
318

319
        tr300.[payroll_group] ,
320

321
        tr300.[organization] ,
322

323
        tr300.[position] ,
324

325
        tr300.[job] ,
326

327
        bank.description 
328

329
		,'A' + tr300.payroll_group + @payyear + @paymonth + tr300.employee_id AS CustomerReff
330

331
		,ROW_NUMBER() OVER(ORDER BY tr300.employee_id ASC) AS NoRow
332

333
FROM    hr_tr0300 AS tr300
334

335
LEFT JOIN hr_md_emp_md0001 AS md1 ON tr300.landscape = md1.landscape
336

337
			AND tr300.employee_id = md1.emp_id
338

339
			AND md1.start_date <= @endda
340

341
			AND md1.end_date >= @endda
342

343
LEFT JOIN hr_md_emp_md0003 AS md3 ON tr300.landscape = md3.landscape
344

345
            AND tr300.employee_id = md3.emp_id
346

347
            AND md3.start_date <= @endda
348

349
            AND md3.end_date >= @endda
350

351
LEFT JOIN base_cust_ref_bankid AS bank ON bank.code = md3.bank_id
352

353
			AND bank.landscape = md3.landscape
354

355
WHERE   md3.bank_id = @bank_id
356

357
        AND tr300.landscape = @landscape
358

359
		AND tr300.payroll_group = @paygroup 
360

361
        AND tr300.pay_period_month = @paymonth
362

363
        AND tr300.pay_period_year = @payyear
364

365
        AND tr300.run_period_month = @paymonth
366

367
        AND tr300.run_period_year = @payyear 
368

369

370

371

372

373
--------------- get data payroll --------------
374

375
INSERT  INTO @tbl_tr_enc
376

377
SELECT  pr.landscape ,
378

379
        pr.employee_id ,
380

381
        pr.pay_period_month ,
382

383
        pr.pay_period_year ,
384

385
        pr.run_period_month ,
386

387
        pr.run_period_year ,
388

389
        pr.wage_type ,
390

391
        pr.amount ,
392

393
        pr.rate ,
394

395
        'N' ,
396

397
        'now'
398

399
FROM    hr_tr0301 pr WITH ( NOLOCK )
400

401
INNER JOIN @tbl_emp emp ON pr.employee_id = emp.emp_id
402

403
WHERE   pr.pay_period_month = @paymonth
404

405
        AND pr.pay_period_year = @payyear
406

407
        AND pr.run_period_month = @paymonth
408

409
        AND pr.run_period_year = @payyear
410

411
        AND pr.wage_type IN ( 'THP' )
412

413
	
414

415
INSERT  INTO @tbl_tr_enc
416

417
SELECT  pr.landscape ,
418

419
        pr.employee_id ,
420

421
        pr.pay_period_month ,
422

423
        pr.pay_period_year ,
424

425
        pr.run_period_month ,
426

427
        pr.run_period_year ,
428

429
        pr.wage_type ,
430

431
        pr.amount ,
432

433
        pr.rate ,
434

435
        'R' ,
436

437
        'now'
438

439
FROM    hr_tr0301_retro pr WITH ( NOLOCK )
440

441
INNER JOIN @tbl_emp emp ON pr.employee_id = emp.emp_id
442

443
WHERE   pr.pay_period_month = @paymonth
444

445
        AND pr.pay_period_year = @payyear
446

447
        AND pr.run_period_month = @paymonth
448

449
        AND pr.run_period_year = @payyear
450

451
        AND pr.wage_type IN ( 'THP' )
452

453
	 
454

455
INSERT  INTO @tbl_tr_dec
456

457
SELECT  pr.landscape ,
458

459
        pr.employee_id ,
460

461
        pr.payPeriodMonth ,
462

463
        pr.payPeriodYear ,
464

465
        pr.runPeriodMonth ,
466

467
        pr.runPeriodYear ,
468

469
        pr.wage_type ,
470

471
        CONVERT(DECIMAL(18, 0), dbo.SDE(pr.amount, 'M!N0V@2010')) ,
472

473
        CONVERT(DECIMAL(18, 0), dbo.SDE(pr.rate, 'M!N0V@2010')) ,
474

475
        pr.flg_retro ,
476

477
        pr.flg_period
478

479
FROM    @tbl_tr_enc pr
480

481

482

483
INSERT  INTO @tbl_tr_dec_sum
484

485
SELECT  tbl_tr_dec.landscape ,
486

487
        employee_id ,
488

489
        payPeriodMonth ,
490

491
        payPeriodYear ,
492

493
        runPeriodMonth ,
494

495
        runPeriodYear ,
496

497
        wage_type ,
498

499
        SUM(amount) AS amount ,
500

501
        SUM(rate) AS rate ,
502

503
        MIN(flg_retro) AS flg_retro ,
504

505
        flg_period
506

507
FROM    @tbl_tr_dec AS tbl_tr_dec
508

509
WHERE   tbl_tr_dec.amount <> '0'
510

511
GROUP BY tbl_tr_dec.landscape ,
512

513
        employee_id ,
514

515
        payPeriodMonth ,
516

517
        payPeriodYear ,
518

519
        runPeriodMonth ,
520

521
        runPeriodYear ,
522

523
        wage_type ,
524

525
        flg_period
526

527

528

529
INSERT INTO @tbl_sum
530

531
SELECT landscape ,runPeriodMonth ,runPeriodYear
532

533
		,SUM(amount) AS SumAmount ,SUM(rate) AS SumRate ,COUNT(employee_id) AS SumEmpID
534

535
		,CONVERT(VARCHAR(250),(COUNT(employee_id))) + CONVERT(VARCHAR(250),(SUM(amount))) AS Cek
536

537
FROM @tbl_tr_dec_sum
538

539
GROUP BY landscape, runPeriodMonth, runPeriodYear
540

541

542

543
SELECT DISTINCT emp.NoRow
544

545
				,emp.emp_id
546

547
				,emp.emp_name
548

549
				,emp.bank_account
550

551
				,emp.bank_account_name
552

553
				,emp.bank_id
554

555
				,emp.bank_name
556

557
				,emp.CustomerReff
558

559
				,decsum.amount
560

561
				,tblsum.SumAmount
562

563
				,tblsum.SumpEmpID
564

565
				,tblsum.Cek
566

567
				,dbo.fn_formatdatetime(@tgltrans,'ddmmyyyy') AS ValueDate --,dbo.fn_formatdatetime(GETDATE(),'ddmmyyyy') AS ValueDate
568

569
				,'020101999999301' AS DebitAccount
570

571
FROM @tbl_emp AS emp
572

573
LEFT JOIN @tbl_tr_dec_sum AS decsum
574

575
	ON emp.emp_id = decsum.employee_id
576

577
LEFT JOIN @tbl_sum AS tblsum
578

579
	ON tblsum.landscape = decsum.landscape
580

581
	AND tblsum.runPeriodMonth = decsum.runPeriodMonth
582

583
	AND tblsum.runPeriodYear = decsum.runPeriodYear
(5-5/6)