Project

General

Profile

Feature #3521 » Rpt_Mega_HR_PY_BankTransferEmp.txt

Muhammad Bintar, 11/21/2025 10:50 AM

 
1
ALTER PROCEDURE [dbo].[Rpt_Mega_HR_PY_BankTransferEmp]
2
(
3
	@landscape VARCHAR(10)
4
	,@companycode VARCHAR(10)
5
	,@paygroup VARCHAR(10)
6
	,@payperiod VARCHAR(10)
7
	,@emp_id VARCHAR(10)
8
	,@trans_date VARCHAR(20)
9
	,@bank_id VARCHAR(10)
10
	,@payment_date VARCHAR(20)
11
)
12
AS
13

    
14
--DECLARE @landscape VARCHAR(10) = '100'
15
--DECLARE @companycode VARCHAR(10) = ''
16
--DECLARE @paygroup VARCHAR(10) = '01'
17
--DECLARE @payperiod VARCHAR(10) = '202401'
18
--DECLARE @emp_id VARCHAR(10) = ''
19
--DECLARE @trans_date VARCHAR(20) = '20250101'
20
--DECLARE @bank_id VARCHAR(10) = '01'
21
--DECLARE @payment_date VARCHAR(20) = ''
22

    
23

    
24
DECLARE @paymonth VARCHAR(10) = RIGHT(@payperiod, 2)
25
DECLARE @payyear VARCHAR(10) = LEFT(@payperiod, 4)
26
DECLARE @enddate VARCHAR(10) = CONVERT(NVARCHAR(8), DATEADD(d, -1,
27
                                                            DATEADD(m, 1,
28
                                                              ( @payperiod
29
                                                              + '01' ))), 112)
30

    
31
DECLARE @t_emp TABLE
32
    (
33
      landscape VARCHAR(10) ,
34
      emp_id VARCHAR(20) ,
35
      emp_name VARCHAR(250) ,
36
      bank_acc VARCHAR(50) ,
37
      bank_acc_name VARCHAR(250) ,
38
      bank_acc_non VARCHAR(50) ,
39
      bank_id VARCHAR(20) ,
40
      bank_name VARCHAR(250) ,
41
      bank_non VARCHAR(20) ,
42
      bank_non_name VARCHAR(250) ,
43
      emp_office VARCHAR(20) ,
44
      size VARCHAR(50) ,
45
      type VARCHAR(50) ,
46
      branch_existing VARCHAR(50),
47
	  job_level VARCHAR (MAX),
48
	  job_title VARCHAR (MAX),
49
	  org_group VARCHAR (MAX),
50
	  org_group_name VARCHAR (MAX)
51
    )	
52

    
53
DECLARE @tbl_tr_enc TABLE
54
    (
55
      landscape VARCHAR(3) ,
56
      employee_id VARCHAR(8) ,
57
      payPeriodMonth VARCHAR(2) ,
58
      payPeriodYear VARCHAR(4) ,
59
      runPeriodMonth VARCHAR(2) ,
60
      runPeriodYear VARCHAR(4) ,
61
      wage_type VARCHAR(4) ,
62
      amount VARCHAR(250) ,
63
      rate VARCHAR(250) ,
64
      flg_retro VARCHAR(3)
65
    )
66

    
67
DECLARE @tbl_tr_dec TABLE
68
    (
69
      landscape VARCHAR(3) ,
70
      employee_id VARCHAR(8) ,
71
      payPeriodMonth VARCHAR(2) ,
72
      payPeriodYear VARCHAR(4) ,
73
      runPeriodMonth VARCHAR(2) ,
74
      runPeriodYear VARCHAR(4) ,
75
      wage_type VARCHAR(4) ,
76
      amount DECIMAL(18, 0) ,
77
      rate DECIMAL(18, 0) ,
78
      flg_retro VARCHAR(3)
79
    )
80
	 
81
DECLARE @tbl_tr_dec_sum TABLE
82
    (
83
      landscape VARCHAR(3) ,
84
      employee_id VARCHAR(8) ,
85
      payPeriodMonth VARCHAR(2) ,
86
      payPeriodYear VARCHAR(4) ,
87
      runPeriodMonth VARCHAR(2) ,
88
      runPeriodYear VARCHAR(4) ,
89
      wage_type VARCHAR(4) ,
90
      amount DECIMAL(22,0) ,
91
      rate  DECIMAL(22,0) ,
92
      flg_retro VARCHAR(1)
93
    )
94

    
95
DECLARE @t_result TABLE
96
    (
97
      branch VARCHAR(50) ,
98
	  employeeid VARCHAR (50),
99
	  employeename VARCHAR(250) ,
100
	  paymentdate VARCHAR (50),
101
      trans_date VARCHAR(50) ,
102
      bank_acc VARCHAR(50) ,
103
      amount  VARCHAR(50) ,
104
      flag VARCHAR(50) ,
105
      ket VARCHAR(250) ,
106
      sal VARCHAR(50),
107
      size VARCHAR(50),
108
      type VARCHAR(50),
109
      branch_exsting VARCHAR(50),
110
	  job_level VARCHAR (MAX),
111
	  job_title VARCHAR (MAX),
112
	  org_group VARCHAR (MAX),
113
	  org_group_name VARCHAR (MAX)
114
    )
115

    
116
INSERT  INTO @t_emp
117
        SELECT DISTINCT
118
                tr300.landscape ,
119
                md1.emp_id ,
120
                md1.full_name ,
121
                md3.bank_account ,
122
                md3.bank_account_name ,
123
                md3.bank_account_non ,
124
                md3.bank_id ,
125
                bank.description AS bank_desc ,
126
                md3.bank_id_non ,
127
                banknon.description AS bank_non_desc ,
128
                md2.employee_office,
129
                office.size,
130
                office.type,
131
                office.branch_existing,
132
				joblevel.description,
133
				om.description,
134
				oo.org_group,
135
				org_group.description
136
        FROM    dbo.hr_tr0300_new AS tr300
137
                LEFT JOIN dbo.hr_md_emp_md0001 AS md1 ON md1.landscape = tr300.landscape
138
                                                         AND md1.emp_id = tr300.employee_id
139
                                                         AND md1.start_date <= @enddate
140
                                                         AND md1.end_date >= @enddate
141
                LEFT JOIN dbo.hr_md_emp_md0003 AS md3 ON md3.landscape = tr300.landscape
142
                                                         AND md3.emp_id = tr300.employee_id
143
                                                         AND md3.start_date <= @enddate
144
                                                         AND md3.end_date >= @enddate
145
                LEFT JOIN dbo.hr_md_emp_md0002 AS md2 ON md2.landscape = tr300.landscape
146
                                                         AND md2.emp_id = tr300.employee_id
147
                                                         AND md2.start_date <= @enddate
148
                                                         AND md2.end_date >= @enddate
149
				LEFT JOIN dbo.hr_md_emp_md0002 AS pos ON pos.emp_id=tr300.employee_id
150
														 --AND pos.end_date = '99991231'
151
														 AND pos.start_date <= @enddate
152
                                                         AND pos.end_date >= @enddate
153
				LEFT join hr_md_orm_object om on pos.position=om.object  
154
														 AND om.class='P'
155
				LEFT join hr_md_orm_object org on pos.organization=org.object  
156
														 AND org.class='O'
157
				LEFT JOIN hr_md_orm_o_o oo on  org.object= oo.object
158
				LEFT JOIN hr_md_orm_object obj on pos.job=obj.object
159
														AND obj.class='J'
160
				LEFT JOIN hr_md_orm_o_j oj on obj.object=oj.object
161
				LEFT JOIN base_cust_ref_joblevel joblevel on oj.job_level=joblevel.joblevel
162
                LEFT JOIN dbo.base_cust_ref_bankid AS bank ON bank.landscape = md3.landscape
163
                                                              AND bank.code = md3.bank_id
164
                LEFT JOIN dbo.base_cust_ref_bankid AS banknon ON banknon.landscape = md3.landscape
165
                                                              AND banknon.code = md3.bank_id_non
166
                LEFT JOIN base_cust_ref_emp_office AS office ON md2.landscape = office.landscape
167
                                                              AND md2.employee_office = office.emp_subarea
168
				LEFT JOIN base_cust_ref_OrgGroup AS org_group on oo.org_group=org_group.code 
169
        WHERE   tr300.landscape = @landscape
170
                AND ( tr300.company_id = @companycode
171
                      OR @companycode = ''
172
                    )
173
                AND ( tr300.payroll_group = @paygroup
174
                      OR @paygroup = ''
175
                    )
176
                AND ( tr300.employee_id = @emp_id
177
                      OR @emp_id = ''
178
                    )
179
                AND tr300.run_period_month = tr300.pay_period_month
180
                AND tr300.run_period_year = tr300.pay_period_year
181
                AND tr300.run_period_month = @paymonth
182
                AND tr300.run_period_year = @payyear
183
                AND ( md3.bank_id = @bank_id
184
                      OR @bank_id = ''
185
                    )
186

    
187
					--select * from @t_emp
188
	
189
--//-- Insert data payroll original
190
INSERT  INTO @tbl_tr_enc
191
        SELECT  pr.landscape ,
192
                pr.employee_id ,
193
                pr.pay_period_month ,
194
                pr.pay_period_year ,
195
                pr.run_period_month ,
196
                pr.run_period_year ,
197
                pr.wage_type ,
198
                pr.amount ,
199
                pr.rate ,
200
                'N'
201
        FROM    hr_tr0301_new pr WITH ( NOLOCK )
202
                INNER JOIN @t_emp emp ON pr.employee_id = emp.emp_id
203
        WHERE   pr.run_period_year = @payyear
204
                AND pr.run_period_month = @paymonth
205
                AND pr.pay_period_year = @payyear
206
                AND pr.pay_period_month = @paymonth
207
                AND ( pr.employee_id = @emp_id
208
                      OR @emp_id = ''
209
                    )
210
                AND ( pr.wage_type = 'THP' )
211
--SELECT * from @tbl_tr_enc
212

    
213
--//-- Insert data payroll retro
214
INSERT  INTO @tbl_tr_enc
215
        SELECT  pr.landscape ,
216
                pr.employee_id ,
217
                pr.pay_period_month ,
218
                pr.pay_period_year ,
219
                pr.run_period_month ,
220
                pr.run_period_year ,
221
                pr.wage_type ,
222
                pr.amount ,
223
                pr.rate ,
224
                'R'
225
        FROM    hr_tr0301_retro_new pr WITH ( NOLOCK )
226
                INNER JOIN @t_emp emp ON pr.employee_id = emp.emp_id
227
        WHERE   pr.run_period_year = @payyear
228
                AND pr.run_period_month = @paymonth
229
                AND pr.pay_period_year = @payyear
230
                AND pr.pay_period_month = @paymonth
231
                AND ( pr.employee_id = @emp_id
232
                      OR @emp_id = ''
233
                    )
234
                AND ( pr.wage_type = 'THP' )
235

    
236
--//-- Decrypt data
237
INSERT  INTO @tbl_tr_dec
238
        SELECT  pr.landscape ,
239
                pr.employee_id ,
240
                pr.payPeriodMonth ,
241
                pr.payPeriodYear ,
242
                pr.runPeriodMonth ,
243
                pr.runPeriodYear ,
244
                pr.wage_type ,
245
                CONVERT(DECIMAL(18, 0), dbo.SDE(pr.amount, 'M!N0V@2010')) ,
246
                CONVERT(DECIMAL(18, 0), dbo.SDE(pr.rate, 'M!N0V@2010')) ,
247
                pr.flg_retro
248
        FROM    @tbl_tr_enc pr
249

    
250
INSERT  INTO @tbl_tr_dec_sum
251
        SELECT  tbl_tr_dec.landscape ,
252
                employee_id ,
253
                payPeriodMonth ,
254
                payPeriodYear ,
255
                runPeriodMonth ,
256
                runPeriodYear ,
257
                wage_type ,
258
                SUM(amount) AS amount ,
259
                SUM(rate) AS rate ,
260
                MIN(flg_retro) AS flg_retro
261
        FROM    @tbl_tr_dec AS tbl_tr_dec
262
        GROUP BY tbl_tr_dec.landscape ,
263
                employee_id ,
264
                payPeriodMonth ,
265
                payPeriodYear ,
266
                runPeriodMonth ,
267
                runPeriodYear ,
268
                wage_type
269

    
270
INSERT  @t_result
271
        SELECT DISTINCT
272
                '' ,
273
				'Employee ID',
274
				'Employee Name',
275
				'Payment Date',
276
                'Source Date' ,
277
                'Norek Kredit' ,
278
                'Amount',
279
                'Db Cr' ,
280
                'Keterangan' ,
281
                'Refferensi',
282
                '',
283
                '',
284
                'Source Branch',
285
				'Job Level',
286
				'Job Title',
287
				'Org Group',
288
				'Org Group Name'
289
        FROM    @t_emp AS temp
290
                LEFT JOIN @tbl_tr_dec_sum AS decsum ON temp.emp_id = decsum.employee_id
291

    
292
INSERT  @t_result
293
        SELECT DISTINCT
294
                'TOTAL' ,
295
				'TOTAL',
296
				'',
297
				'',
298
                '' ,
299
                CONVERT(VARCHAR(50),COUNT(temp.emp_id)) ,
300
                CONVERT(VARCHAR(50),SUM(decsum.amount)),
301
                '' ,
302
                '' ,
303
                '',
304
                '',
305
                '',
306
                'TOTAL',
307
				'',
308
				'',
309
				'',
310
				''
311
        FROM    @t_emp AS temp
312
                LEFT JOIN @tbl_tr_dec_sum AS decsum ON temp.emp_id = decsum.employee_id
313

    
314

    
315

    
316
INSERT  @t_result
317
        SELECT DISTINCT
318
                RIGHT(temp.emp_office, 3) AS branch ,
319
				temp.emp_id,
320
				temp.emp_name,
321
                case when @payment_date='' then '' else dbo.fn_formatdatetime_indonesia(@payment_date, 'dd mmmm yyyy') end AS trans_date ,
322
				dbo.fn_formatdatetime_indonesia(@trans_date, 'dd mmmm yyyy') AS trans_date ,
323
                temp.bank_acc ,
324
                CONVERT(VARCHAR(50),decsum.amount) ,
325
                'C' ,
326
                'SAL' + dbo.fn_formatdatetime_indonesia(@enddate, 'mmyy') AS ket ,
327
                'SAL',
328
				temp.size,
329
                temp.type,
330
                temp.branch_existing,
331
				temp.job_level,
332
				temp.job_title,
333
				temp.org_group,
334
				temp.org_group_name
335
        FROM    @t_emp AS temp
336
                LEFT JOIN @tbl_tr_dec_sum AS decsum ON temp.emp_id = decsum.employee_id
337

    
338
SELECT  *
339
FROM    @t_result
340
		 
341
--SELECT DISTINCT dbo.fn_formatdatetime_indonesia(@trans_date, 'ddmmyy') AS trans_date
342
--				,temp.*
343
--				,RIGHT(temp.emp_office,3) AS branch
344
--				,'SAL' + dbo.fn_formatdatetime_indonesia(@enddate, 'mmyy') AS ket
345
--				,decsum.amount
346
--				,decsum.rate
347
--FROM @t_emp AS temp
348
--LEFT JOIN @tbl_tr_dec_sum AS decsum
349
--	ON temp.emp_id = decsum.employee_id
(7-7/7)