Project

General

Profile

Support #147 » query report all employee.txt

query report all employee - Muhammad Bintar, 01/20/2021 11:34 AM

 
1
USE [MinovaHR_ESS_Indomobil_Production]
2
GO
3
/****** Object:  StoredProcedure [dbo].[Rpt_IMFI_HR_PA_ALL_EMPLOYEE]    Script Date: 01/20/2021 11:15:18 ******/
4
SET ANSI_NULLS ON
5
GO
6
SET QUOTED_IDENTIFIER ON
7
GO
8
-- Batch submitted through debugger: SQLQuery3.sql|0|0|C:\Users\Administrator.IMFI\AppData\Local\Temp\2\~vsB54F.sql
9
--USE [MinovaHR_ESS_Indomobil_Production]
10
--GO
11
--/****** Object:  StoredProcedure [dbo].[Rpt_IMFI_HR_PA_ALL_EMPLOYEE]    Script Date: 28-11-2018 10:24:45 ******/
12
--SET ANSI_NULLS ON
13
--GO
14
--SET QUOTED_IDENTIFIER ON
15
--GO
16
ALTER PROCEDURE [dbo].[Rpt_IMFI_HR_PA_ALL_EMPLOYEE]
17
    (
18
      @landscape VARCHAR(3) ,
19
      @companycode VARCHAR(5) ,
20
      @emp_status VARCHAR(5) ,
21
      @emp_type VARCHAR(5) ,
22
      @emp_area VARCHAR(5) ,
23
      @emp_office VARCHAR(5) ,
24
      @pay_group VARCHAR(2)
25
    )
26
AS 
27

    
28
--DECLARE @landscape VARCHAR(3) = '100'
29
--DECLARE @companycode VARCHAR(5) = '1000'
30
--DECLARE @emp_status VARCHAR(5) = ''
31
--DECLARE @emp_type VARCHAR(5)= ''
32
--DECLARE @emp_area VARCHAR(5)= ''
33
--DECLARE @emp_office VARCHAR(5) = ''
34
--DECLARE @pay_group VARCHAR(2) = ''
35

    
36

    
37
DECLARE @now VARCHAR(12) = dbo.fn_formatdatetime(GETDATE(), 'yyyymmdd')
38
--DECLARE @now VARCHAR(12) = '20150901'
39

    
40
DECLARE @tbl_3 TABLE
41
    (
42
      emp_id VARCHAR(8) ,
43
      edu_level VARCHAR(8) ,
44
      major VARCHAR(60) ,
45
      institution VARCHAR(200) ,
46
      gpa VARCHAR(8) ,
47
      edu_level_desc VARCHAR(200) ,
48
      edu_start VARCHAR(8)
49
    )
50

    
51
    --INSERT  INTO @tbl_3
52
    --        SELECT  a.* ,
53
    --                edu_level.description
54
    --        FROM    ( SELECT    emp_id ,
55
    --                            MAX(edu_level) AS edu_level ,
56
    --                            major ,
57
    --                            institution ,
58
    --                            CONVERT(DECIMAL(18, 2), gpa) AS gpa,
59
    --                            MAX (start_date) AS edu_start
60
    --                  FROM      dbo.hr_md_emp_md0008 AS md08
61
    --                  GROUP BY  emp_id ,
62
    --                            major ,
63
    --                            institution ,
64
    --                            gpa
65
    --                ) AS a
66
    --                LEFT JOIN base_cust_ref_edu_level AS edu_level ON a.edu_level = edu_level.code
67
INSERT  INTO @tbl_3
68
       -- SELECT  TOP(1)
69
       select emp_id ,
70
      -- start_date, 
71
       --edu_type,
72
                edu_level ,
73
                major ,
74
                institution ,
75
                gpa ,
76
                edu_level.description ,
77
                start_date
78
        FROM    dbo.hr_md_emp_md0008 AS edu
79
                LEFT JOIN base_cust_ref_edu_level AS edu_level ON edu.edu_level = edu_level.code
80
        WHERE   end_date = ( SELECT   MAX(end_date)
81
                               FROM     dbo.hr_md_emp_md0008 AS x
82
                               WHERE    x.emp_id = edu.emp_id AND x.edu_type='F'
83
                             )
84
                            
85
							 
86
							  --AND edu.emp_id = '20110003'
87
		ORDER BY edu.seq DESC
88
    
89
    
90
DECLARE @tbl_1 TABLE
91
    (
92
      level1 VARCHAR(8) ,
93
      level1_desc VARCHAR(200) ,
94
      level2 VARCHAR(8) ,
95
      level2_desc VARCHAR(200) ,
96
      level3 VARCHAR(8) ,
97
      level3_desc VARCHAR(200) ,
98
      level4 VARCHAR(8) ,
99
      level4_desc VARCHAR(200) ,
100
      level5 VARCHAR(8) ,
101
      level5_desc VARCHAR(200) ,
102
      level6 VARCHAR(8) ,
103
      level6_desc VARCHAR(200) ,
104
      level7 VARCHAR(8) ,
105
      level7_desc VARCHAR(200) ,
106
      level8 VARCHAR(8) ,
107
      level8_desc VARCHAR(200) ,
108
      emp_id VARCHAR(8)
109
    )
110

    
111

    
112
INSERT  INTO @tbl_1
113
        SELECT DISTINCT
114
                a.org_id_01 ,
115
                a.org_name_01 ,
116
                a.org_id_02 ,
117
                a.org_name_02 ,
118
                a.org_id_03 ,
119
                a.org_name_03 ,
120
                a.org_id_04 ,
121
                a.org_name_04 ,
122
                a.org_id_05 ,
123
                a.org_name_05 ,
124
                a.org_id_06 ,
125
                a.org_name_06 ,
126
                a.org_id_07 ,
127
                a.org_name_07 ,
128
                a.org_id_08 ,
129
                a.org_name_08 ,
130
                md2.emp_id
131
        FROM    dbo.GetOrgInOrgWide('00000001', @now, @landscape) AS a
132
                INNER JOIN dbo.hr_md_emp_md0002 AS md2 ON a.org_id = md2.organization
133
                                                          AND md2.start_date <= @now
134
                                                          AND md2.end_date >= @now                                                          	 
135
	
136
DECLARE @tbl_2 TABLE
137
    (
138
      emp_id VARCHAR(8) ,
139
      movement_type VARCHAR(2) ,
140
      jumlah DECIMAL(18, 0)
141
    )	
142

    
143
INSERT  INTO @tbl_2
144
        SELECT DISTINCT
145
                emp_id ,
146
                movement_type ,
147
                COUNT(start_date)
148
        FROM    dbo.hr_md_emp_md0002 WITH ( NOLOCK )
149
        WHERE   movement_type = '60'
150
        GROUP BY emp_id ,
151
                movement_type
152

    
153
DECLARE @tbl_md2_last TABLE
154
    (
155
      landscape VARCHAR(3) ,
156
      emp_id VARCHAR(8) ,
157
      start_date VARCHAR(8) ,
158
      end_date VARCHAR(8) ,
159
      movement_type VARCHAR(8) ,
160
      reason VARCHAR(2) ,
161
      company_id VARCHAR(4) ,
162
      costcenter VARCHAR(8) ,
163
      employee_area VARCHAR(20) ,
164
      employee_office VARCHAR(4) ,
165
      employee_status VARCHAR(2) ,
166
      employee_type VARCHAR(20) ,
167
      employee_subtype VARCHAR(20) ,
168
      tax_office VARCHAR(5) ,
169
      payroll_group VARCHAR(2) ,
170
      organization VARCHAR(8) ,
171
      position VARCHAR(8) ,
172
      job VARCHAR(8) ,
173
      remark VARCHAR(MAX) ,
174
      additional_1 VARCHAR(8) ,
175
      datedifff VARCHAR(MAX)
176
    )
177

    
178
INSERT  INTO @tbl_md2_last
179
        SELECT  tbl2.* ,
180
               '' as datedifff
181
        FROM    ( SELECT    landscape ,
182
                            emp_id ,
183
                            start_date ,
184
                            end_date ,
185
                            movement_type ,
186
                            reason ,
187
                            company_id ,
188
                            costcenter ,
189
                            employee_area ,
190
                            employee_office ,
191
                            employee_status ,
192
                            employee_type ,
193
                            employee_subtype ,
194
                            tax_office ,
195
                            payroll_group ,
196
                            organization ,
197
                            position ,
198
                            job ,
199
                            remark ,
200
                            CASE WHEN ISNULL(additional_1, '') = ''
201
                                 THEN start_date
202
                                 ELSE additional_1
203
                            END AS realDate
204
                  FROM      dbo.hr_md_emp_md0002 WITH ( NOLOCK )
205
                ) AS tbl2
206
                        
207
SELECT DISTINCT
208
        md01.emp_id ,
209
        md01.full_name ,
210
        md02_last.company_id ,
211
        CONVERT(DATE, md02_hiring.start_date) AS join_date ,
212
        CASE WHEN md02_last.movement_type = '20' THEN
213
        --CONVERT(DATE, md02_appointment.start_date) --AS permanent_date ,
214
                  CONVERT(DATE, md02_last.start_date)
215
             ELSE ( SELECT  CONVERT(DATE, date)
216
                    FROM    hr_md_emp_md0039
217
                    WHERE   date_type = '04'
218
                            AND emp_id = md02_last.emp_id
219
                  )
220
        END permanent_date ,
221
        CONVERT(DATE, md39_group.date) AS join_group ,
222
        mov_type_last.description AS effective_type_status ,
223
        CONVERT(DATE, md02_last.start_date) AS effective_date ,
224
        CONVERT(DATE, md02_last.additional_1) AS real_date ,
225
        md02_last.employee_status ,
226
        emp_status_last.description AS emp_status ,
227
        CONVERT(DATE, md02_resign.start_date) AS resign_date ,
228
        emp_type_last.description AS employee_type ,
229
        CASE WHEN ( md39_contract.date >= @now )
230
             THEN CONVERT(DATE, md39_contract.date)
231
             ELSE NULL
232
        END expired_status ,
233
        tbl_2.jumlah AS contract_extent ,
234
        ws_type.description AS workschedule_type ,
235
        md03.tax_status ,
236
        md02_last.employee_area AS area_code ,
237
        emp_area_last.description AS area_desc ,
238
        md02_last.employee_office AS office_code ,
239
        emp_office_last.emp_subarea_description AS office_desc ,
240
        md02_last.payroll_group AS payroll_group_id ,
241
        payroll_group_last.description AS payroll_group ,
242
        emp_sub_type_desc.description AS employee_subtype ,
243
        tbl_1.level1 ,
244
        tbl_1.level1_desc ,
245
        tbl_1.level2 ,
246
        tbl_1.level2_desc ,
247
        --tbl_1.level3 ,
248
        --tbl_1.level3_desc ,
249
        tbl_1.level4 ,
250
        tbl_1.level4_desc ,
251
        tbl_1.level5 ,
252
        tbl_1.level5_desc ,
253
        --tbl_1.level6 ,
254
        --tbl_1.level6_desc ,
255
        --tbl_1.level7 ,
256
        --tbl_1.level7_desc ,
257
        tbl_1.level8 ,
258
        tbl_1.level8_desc ,
259
        md02_last.costcenter AS cc_code ,
260
        cc.description AS cc_desc ,
261
        md02_last.position AS pos_code ,
262
        p.description AS pos_desc ,
263
        --md02_last.job AS job_code ,
264
        --j.description AS job_desc ,
265
        pay_grade.description AS pay_grade ,
266
        md01.nick_name ,
267
        gender.description AS gender ,
268
        md01.birth_place ,
269
        CONVERT (DATE, md01.birth_date) AS birth_date ,
270
        md06_resident.street ,
271
        ( SELECT    description
272
          FROM      base_cust_ref_province
273
          WHERE     code = md06_resident.province
274
        ) AS province ,
275
        md06_resident.location ,
276
        md06_resident.postalcode ,
277
        md06_resident.telp_num ,
278
        md12_hp.comm_description AS cellphone ,
279
        md12_email.comm_description AS email ,
280
        religion.description AS religion ,
281
        marital_status.description AS marital_status ,
282
        md11.blood_type ,
283
        md13_ktp.id_description AS id ,
284
        CONVERT(DATE, md13_ktp.end_date) AS ktp_expired ,
285
        md06_ktp.street AS ktp_address ,
286
        ( SELECT    description
287
          FROM      base_cust_ref_province
288
          WHERE     code = md06_ktp.province
289
        ) AS ktp_province ,
290
        md06_ktp.postalcode AS ktp_postalcode ,
291
        ( SELECT    description
292
          FROM      base_cust_ref_id_type
293
          WHERE     code = md13_a.id_type
294
        ) AS id_a ,
295
        md13_a.id_description AS id_a_no ,
296
        CONVERT(DATE, md13_a.end_date) AS id_a_expired ,
297
        ( SELECT    description
298
          FROM      base_cust_ref_id_type
299
          WHERE     code = md13_b.id_type
300
        ) AS id_b ,
301
        md13_b.id_description AS id_b_no ,
302
        CONVERT(DATE, md13_b.end_date) AS id_b_expired ,
303
        ( SELECT    description
304
          FROM      base_cust_ref_id_type
305
          WHERE     code = md13_c.id_type
306
        ) AS id_c ,
307
        md13_c.id_description AS id_c_no ,
308
        CONVERT(DATE, md13_c.end_date) AS id_c_expired ,
309
        md13_passport.id_description AS id_password_no ,
310
        CONVERT(DATE, md13_passport.end_date) AS id_password_expired ,
311
        md06_cp.contact_person AS cp_name ,
312
        md06_cp.street AS cp_address ,
313
        md06_cp.telp_num AS cp_tlp ,
314
        md06_cp.cellphone_num AS cp_cell ,
315
        md03.npwp ,
316
        CASE WHEN md03.npwp_date = '' THEN ''
317
             ELSE dbo.fn_formatdatetime(md03.npwp_date, 'dd mmm yyyy')
318
        END AS npwp_date ,
319
        md03.jamsostek_type ,
320
        jams_type.description AS jams_type ,
321
        md03.jamsostek ,
322
        CASE WHEN md03.additional_1 = '' THEN ''
323
             ELSE dbo.fn_formatdatetime(md03.additional_1, 'dd mmm yyyy')
324
        END AS additional_1 ,
325
        pension_type.description AS pension_type ,
326
        md03.pension_id ,
327
        CASE WHEN md03.additional_2 = '' THEN ''
328
             ELSE dbo.fn_formatdatetime(md03.additional_2, 'dd mmm yyyy')
329
        END AS additional_2 ,
330
        cust_bank_id.description AS bank_id ,
331
        md03.bank_account ,
332
        md03.bank_account_name ,
333
        tbl_3.edu_level_desc ,
334
        tbl_3.major ,
335
        tbl_3.institution ,
336
        tbl_3.gpa ,
337
        md02_last.remark 
338
        /* ---------------------------Tidak ditampilkan direport(#Data jadi double)--------------------------
339
        CASE WHEN ISNULL(gapok.amount, '') = '' THEN 0
340
             ELSE CONVERT(DECIMAL, dbo.GetPEN(@landscape, gapok.amount))
341
        END amount_gapok ,
342
        CASE WHEN ( SELECT  valuation
343
                    FROM    hr_cu0300
344
                    WHERE   code = makan.wage_type
345
                  ) = 'I2' THEN ( SELECT    amount
346
                                  FROM      hr_cu0304
347
                                  WHERE     start_date <= @now
348
                                            AND end_date >= @now
349
                                            AND wage_type = makan.wage_type
350
                                            AND ( pay_grade = md03.pay_grade
351
                                                  OR pay_grade = '*'
352
                                                )
353
                                            AND ( pay_class = md03.pay_class
354
                                                  OR pay_class = '*'
355
                                                )
356
                                            AND ( pay_area = md03.pay_area
357
                                                  OR pay_area = '*'
358
                                                )
359
                                )
360
             ELSE ( CASE WHEN ISNULL(makan.amount, '') = '' THEN 0
361
                         ELSE CONVERT(DECIMAL, dbo.GetPEN(@landscape,
362
                                                          makan.amount))
363
                    END )
364
        END amount_makan ,
365
        CASE WHEN ( SELECT  valuation
366
                    FROM    hr_cu0300
367
                    WHERE   code = ttp.wage_type
368
                  ) = 'I2' THEN ( SELECT    amount
369
                                  FROM      hr_cu0304
370
                                  WHERE     start_date <= @now
371
                                            AND end_date >= @now
372
                                            AND wage_type = ttp.wage_type
373
                                            AND ( pay_grade = md03.pay_grade
374
                                                  OR pay_grade = '*'
375
                                                )
376
                                            AND ( pay_class = md03.pay_class
377
                                                  OR pay_class = '*'
378
                                                )
379
                                            AND ( pay_area = md03.pay_area
380
                                                  OR pay_area = '*'
381
                                                )
382
                                )
383
             ELSE ( CASE WHEN ISNULL(ttp.amount, '') = '' THEN 0
384
                         ELSE CONVERT(DECIMAL, dbo.GetPEN(@landscape,
385
                                                          ttp.amount))
386
                    END )
387
        END amount_transport ,
388
        CASE WHEN ( SELECT  valuation
389
                    FROM    hr_cu0300
390
                    WHERE   code = hp.wage_type
391
                  ) = 'I2' THEN ( SELECT    amount
392
                                  FROM      hr_cu0304
393
                                  WHERE     start_date <= @now
394
                                            AND end_date >= @now
395
                                            AND wage_type = hp.wage_type
396
                                            AND ( pay_grade = md03.pay_grade
397
                                                  OR pay_grade = '*'
398
                                                )
399
                                            AND ( pay_class = md03.pay_class
400
                                                  OR pay_class = '*'
401
                                                )
402
                                            AND ( pay_area = md03.pay_area
403
                                                  OR pay_area = '*'
404
                                                )
405
                                )
406
             ELSE ( SELECT  amount
407
                    FROM    hr_cu0303
408
                    WHERE   start_date <= @now
409
                            AND end_date >= @now
410
                            AND wage_type = hp.wage_type
411
                  )
412
        END amount_hp, 
413
        CASE WHEN ( SELECT  valuation
414
                    FROM    hr_cu0300
415
                    WHERE   code = tj.wage_type
416
                  ) = 'I2' THEN ( SELECT    amount
417
                                  FROM      hr_cu0304
418
                                  WHERE     start_date <= @now
419
                                            AND end_date >= @now
420
                                            AND wage_type = tj.wage_type
421
                                            AND ( pay_grade = md03.pay_grade
422
                                                  OR pay_grade = '*'
423
                                                )
424
                                            AND ( pay_class = md03.pay_class
425
                                                  OR pay_class = '*'
426
                                                )
427
                                            AND ( pay_area = md03.pay_area
428
                                                  OR pay_area = '*'
429
                                                )
430
                                )
431
             ELSE ( SELECT  amount
432
                    FROM    hr_cu0303
433
                    WHERE   start_date <= @now
434
                            AND end_date >= @now
435
                            AND wage_type = tj.wage_type
436
                  )
437
        END amount_jabatan
438
        */ ------------------- Hamidi 20170209 ---------------------------------
439
FROM    dbo.hr_md_emp_md0001 md01 --@tbl_personal AS md01
440
        LEFT JOIN base_cust_ref_gender AS gender ON md01.gender = gender.code
441
        LEFT JOIN base_cust_ref_religion AS religion ON md01.religion = religion.code
442
        LEFT JOIN base_cust_ref_marital_status AS marital_status ON md01.marital_status = marital_status.code
443
        LEFT JOIN hr_md_emp_md0002 AS md02_hiring ON md01.emp_id = md02_hiring.emp_id			-- Hiring Date
444
                                                     AND md02_hiring.movement_type = '10'
445
        LEFT JOIN @tbl_md2_last AS md02_last ON md01.emp_id = md02_last.emp_id
446
                                                AND md02_last.start_date <= @now		-- Last Assignment dirubah
447
                                                AND md02_last.end_date >= @now
448
                                                AND md02_last.payroll_group <> '99'
449
                                                AND md02_last.datedifff = ( SELECT
450
                                                              MIN(tbl_last.datedifff)
451
                                                              FROM
452
                                                              @tbl_md2_last tbl_last
453
                                                              WHERE
454
                                                              tbl_last.start_date <= @now  --dirubah
455
                                                              AND tbl_last.end_date >= @now
456
                                                              AND tbl_last.payroll_group <> '99'
457
                                                              AND md01.emp_id = tbl_last.emp_id
458
                                                              )
459
        LEFT JOIN base_cust_ref_mov_type AS mov_type_last ON md02_last.movement_type = mov_type_last.code
460
        LEFT JOIN base_cust_ref_emp_type AS emp_type_last ON md02_last.employee_type = emp_type_last.emp_type
461
        LEFT JOIN base_cust_ref_emp_area AS emp_area_last ON md02_last.employee_area = emp_area_last.emp_area
462
        LEFT JOIN base_cust_ref_emp_office AS emp_office_last ON md02_last.employee_office = emp_office_last.emp_subarea
463
        LEFT JOIN base_cust_ref_payroll_group AS payroll_group_last ON md02_last.payroll_group = payroll_group_last.payroll_group
464
        LEFT JOIN base_cust_ref_emp_status AS emp_status_last ON md02_last.employee_status = emp_status_last.emp_status
465
        LEFT JOIN base_cust_ref_emp_subtype AS emp_sub_type_desc ON md02_last.employee_subtype = emp_sub_type_desc.emp_subtype
466
        LEFT OUTER JOIN hr_md_orm_object cc ON cc.landscape = @landscape
467
                                               AND cc.start_date <= @now
468
                                               AND cc.end_date >= @now
469
                                               AND md02_last.costcenter = cc.object
470
                                               AND cc.class = 'CC'
471
        LEFT OUTER JOIN hr_md_orm_object o ON o.landscape = @landscape
472
                                              AND o.start_date <= @now
473
                                              AND o.end_date >= @now
474
                                              AND md02_last.organization = o.object
475
                                              AND o.class = 'O'
476
        LEFT OUTER JOIN hr_md_orm_object p ON p.landscape = @landscape
477
                                              AND p.start_date <= @now
478
                                              AND p.end_date >= @now
479
                                              AND md02_last.position = p.object
480
                                     --AND md02_last.payroll_group <> '99'
481
                                              AND p.class = 'P'
482
        LEFT OUTER JOIN hr_md_orm_object j ON j.landscape = @landscape
483
                                              AND j.start_date <= @now
484
                                              AND j.end_date >= @now
485
                                              AND md02_last.job = j.object
486
                                              AND j.class = 'J'
487
        LEFT JOIN hr_md_emp_md0039 AS md39_group ON md01.emp_id = md39_group.emp_id				-- Date Spesification, Join Date Group
488
                                                    AND md39_group.date_type = '10'
489
                                                    AND md39_group.start_date <= @now
490
                                                    AND md39_group.end_date >= @now
491
        LEFT JOIN hr_md_emp_md0002 AS md02_resign ON md01.emp_id = md02_resign.emp_id			-- Resign
492
                                                     AND md02_resign.movement_type = '80'
493
                                                    --AND md02_resign.end_date = '99991231'
494
        LEFT JOIN hr_md_emp_md0002 AS md02_contract ON md01.emp_id = md02_contract.emp_id
495
                                                       AND md02_contract.movement_type = '60'
496
        LEFT JOIN hr_md_emp_md0039 AS md39_contract ON md01.emp_id = md39_contract.emp_id		-- Date Spesification, expired contract dengan code 02
497
                                                       AND md39_contract.date_type = '02'
498
                                                       AND md39_contract.seq = ( SELECT
499
                                                              MAX(md39_contracte.seq)
500
                                                              FROM
501
                                                              hr_md_emp_md0039 md39_contracte
502
                                                              WHERE
503
                                                              md39_contracte.emp_id = md39_contract.emp_id
504
                                                              AND md39_contracte.date_type = '02'
505
                                                              )
506
        --LEFT JOIN hr_md_emp_md0002 AS md02_appointment ON md01.emp_id = md02_appointment.emp_id		-- Appointment
507
        --                                                  AND md02_appointment.movement_type = '20'
508
        LEFT JOIN hr_md_emp_md0025 AS md25 ON md01.emp_id = md25.emp_id							-- Working Schedule
509
                                              AND md25.start_date <= @now
510
                                              AND md25.end_date >= @now
511
        LEFT JOIN hr_tm_workschedule_type AS ws_type ON md25.ws_type = ws_type.workschedule_type
512
        LEFT JOIN hr_md_emp_md0003 AS md03 ON md01.emp_id = md03.emp_id						--Payroll Basic
513
                                              AND md03.start_date <= @now
514
                                              AND md03.end_date >= @now
515
        LEFT JOIN base_cust_ref_jamsostek_type AS jams_type ON md03.jamsostek_type = jams_type.code
516
        LEFT JOIN base_cust_ref_pension_type AS pension_type ON md03.pension_type = pension_type.code
517
        LEFT JOIN base_cust_ref_bankid AS cust_bank_id ON md03.bank_id = cust_bank_id.code
518
        LEFT JOIN base_cust_ref_pay_grade AS pay_grade ON md03.pay_grade = pay_grade.pay_grade
519
        LEFT JOIN hr_md_emp_md0006 AS md06_resident ON md01.emp_id = md06_resident.emp_id
520
                                                       AND md06_resident.address_type = '02'
521
                                                       --AND md06_resident.end_date = '99991231'
522
                                                       AND md06_resident.start_date <= @now
523
                                                       AND md06_resident.end_date >= @now
524
                                                       AND md06_resident.seq = ( SELECT
525
                                                              MAX(md06_st.seq)
526
                                                              FROM
527
                                                              hr_md_emp_md0006 md06_st
528
                                                              WHERE
529
                                                              md06_st.address_type = '02'
530
                                                              AND md06_st.emp_id = md06_resident.emp_id
531
                                                              )
532
        LEFT JOIN hr_md_emp_md0012 AS md12_hp ON md01.emp_id = md12_hp.emp_id
533
                                                 AND md12_hp.comm_type = '02'
534
                                                 AND md12_hp.seq = ( SELECT
535
                                                              MAX(md12_st.seq)
536
                                                              FROM
537
                                                              hr_md_emp_md0012 md12_st
538
                                                              WHERE
539
                                                              md12_st.emp_id = md12_hp.emp_id
540
                                                              AND md12_st.comm_type = '02'
541
                                                              )
542
        LEFT JOIN hr_md_emp_md0012 AS md12_email ON md01.emp_id = md12_email.emp_id
543
                                                    AND md12_email.comm_type = '04'
544
                                                    AND md12_email.seq = ( SELECT
545
                                                              MAX(md12e_st.seq)
546
                                                              FROM
547
                                                              hr_md_emp_md0012 md12e_st
548
                                                              WHERE
549
                                                              md12e_st.emp_id = md12_email.emp_id
550
                                                              AND md12e_st.comm_type = '04'
551
                                                              )
552
        LEFT JOIN hr_md_emp_md0011 AS md11 ON md01.emp_id = md11.emp_id
553
        LEFT JOIN hr_md_emp_md0013 AS md13_ktp ON md01.emp_id = md13_ktp.emp_id
554
                                                  AND md13_ktp.id_type = '01'
555
                                                  AND md13_ktp.seq = ( SELECT
556
                                                              MAX(md13_ktpe.seq)
557
                                                              FROM
558
                                                              hr_md_emp_md0013 md13_ktpe
559
                                                              WHERE
560
                                                              md13_ktpe.emp_id = md13_ktp.emp_id
561
                                                              AND md13_ktpe.id_type = '01'
562
                                                              )
563
        LEFT JOIN hr_md_emp_md0013 AS md13_a ON md01.emp_id = md13_a.emp_id
564
                                                AND md13_a.id_type = '03'
565
        LEFT JOIN hr_md_emp_md0013 AS md13_b ON md01.emp_id = md13_b.emp_id
566
                                                AND md13_b.id_type = '04'
567
        LEFT JOIN hr_md_emp_md0013 AS md13_c ON md01.emp_id = md13_c.emp_id
568
                                                AND md13_c.id_type = '05'
569
        LEFT JOIN hr_md_emp_md0013 AS md13_passport ON md01.emp_id = md13_passport.emp_id
570
                                                       AND md13_passport.id_type = '02'
571
        LEFT JOIN hr_md_emp_md0006 AS md06_ktp ON md01.emp_id = md06_ktp.emp_id
572
                                                  AND md06_ktp.address_type = '01'
573
                                                  AND md06_ktp.start_date <= @now
574
                                                  AND md06_ktp.end_date >= @now
575
                                                  --AND md06_ktp.end_date = '99991231'
576
                                                  --AND md06_ktp.seq = ( SELECT
577
                                                  --            MAX(md6_st.seq)
578
                                                  --            FROM
579
                                                  --            hr_md_emp_md0006 md6_st
580
                                                  --            WHERE
581
                                                  --            md6_st.address_type = '01'
582
                                                  --            AND md6_st.emp_id = md06_ktp.emp_id
583
                                                  --            )
584
        LEFT JOIN hr_md_emp_md0006 AS md06_cp ON md01.emp_id = md06_cp.emp_id
585
                                                 AND md06_cp.address_type = '04'
586
                                                 AND md06_cp.start_date <= @now
587
                                                 AND md06_cp.end_date >= @now
588
                                                 AND md06_cp.seq = ( SELECT
589
                                                              MAX(md6_st.seq)
590
                                                              FROM
591
                                                              hr_md_emp_md0006 md6_st
592
                                                              WHERE
593
                                                              md6_st.address_type = '04'
594
                                                              AND md6_st.emp_id = md06_cp.emp_id
595
                                                              )
596
        INNER JOIN hr_md_emp_md0015 AS md15 ON md01.emp_id = md15.emp_id
597
        LEFT JOIN @tbl_1 AS tbl_1 ON md01.emp_id = tbl_1.emp_id
598
        LEFT JOIN @tbl_2 AS tbl_2 ON md01.emp_id = tbl_2.emp_id
599
        LEFT JOIN @tbl_3 AS tbl_3 ON md01.emp_id = tbl_3.emp_id
600
        /* ---------------------------Tidak ditampilkan direport(#Data jadi double)--------------------------
601
        LEFT JOIN dbo.hr_md_emp_md0004 gapok ON md02_last.emp_id = gapok.emp_id -- GAPOK
602
                                                AND gapok.start_date <= @now
603
                                                AND gapok.end_date >= @now
604
                                                AND gapok.wage_type = '1000'
605
        LEFT JOIN dbo.hr_md_emp_md0004 makan ON md02_last.emp_id = makan.emp_id -- MAKAN
606
                                                AND makan.start_date <= @now
607
                                                AND makan.end_date >= @now
608
                                                AND ( makan.wage_type IN (
609
                                                      '1200', '1201' )
610
                                                      OR makan.wage_type IN (
611
                                                      SELECT  val1
612
                                                      FROM    base_cust_parameter
613
                                                      WHERE   param = 'IMFI_WAGE_TYPE_MK'
614
                                                              AND start_date <= @now
615
                                                              AND end_date >= @now )
616
                                                    )
617
        LEFT JOIN dbo.hr_md_emp_md0004 ttp ON md02_last.emp_id = ttp.emp_id -- TRANSPORT
618
                                              AND ttp.start_date <= @now
619
                                              AND ttp.end_date >= @now
620
                                              AND ( ttp.wage_type IN ( '1203',
621
                                                              '1210', '1212' )
622
                                                    OR ttp.wage_type IN (
623
                                                    SELECT  val1
624
                                                    FROM    base_cust_parameter
625
                                                    WHERE   param = 'IMFI_WAGE_TYPE_TP'
626
                                                            AND start_date <= @now
627
                                                            AND end_date >= @now )
628
                                                  )
629
        LEFT JOIN dbo.hr_md_emp_md0004 hp ON md02_last.emp_id = hp.emp_id -- HP
630
                                             AND hp.start_date <= @now
631
                                             AND hp.end_date >= @now
632
                                             AND ( hp.wage_type = '1205'
633
                                                   OR ( hp.wage_type >= '1231'
634
                                                        AND hp.wage_type <= '1235'
635
                                                      )
636
                                                   OR hp.wage_type IN (
637
                                                   SELECT   val1
638
                                                   FROM     base_cust_parameter
639
                                                   WHERE    param = 'IMFI_WAGE_TYPE_HP'
640
                                                            AND start_date <= @now
641
                                                            AND end_date >= @now )
642
                                                 )
643
        LEFT JOIN dbo.hr_md_emp_md0004 tj ON md02_last.emp_id = tj.emp_id -- JABATAN
644
                                             AND tj.start_date <= @now
645
                                             AND tj.end_date >= @now
646
                                             AND ( tj.wage_type = '1202'
647
                                                   OR ( tj.wage_type >= '1221'
648
                                                        AND tj.wage_type <= '1229'
649
                                                      )
650
                                                   OR tj.wage_type IN (
651
                                                   SELECT   val1
652
                                                   FROM     base_cust_parameter
653
                                                   WHERE    param = 'IMFI_WAGE_TYPE_TJ'
654
                                                            AND start_date <= @now
655
                                                            AND end_date >= @now )
656
                                                 )
657
        */ --------------------------- Hamidi 20170209 --------------------------
658
WHERE   md02_last.company_id = @companycode
659
		AND md01.start_date <= @now
660
		AND md01.end_date >= @now
661
        AND ( md02_last.payroll_group = @pay_group
662
              OR @pay_group = ''
663
            )
664
        AND ( md02_last.employee_status = @emp_status
665
              OR @emp_status = ''
666
            )
667
        AND ( md02_last.employee_area = @emp_area
668
              OR @emp_area = ''
669
            )
670
        AND ( md02_last.employee_office = @emp_office
671
              OR @emp_office = ''
672
            )
673
        AND ( md02_last.employee_type = @emp_type
674
              OR @emp_type = ''
675
            )
676
		--AND md02_last.emp_id = '20050767'
677
ORDER BY md02_last.employee_office ,
678
        md01.emp_id
(2-2/3)