Project

General

Profile

Bug #3939 » CRPTLPPOMESSPAYSLIP_202510071550.sql

Tri Rizqiaty, 10/07/2025 03:55 PM

 
1
??USE [MinovaES_BIA_BaseServerCloud]
2

3
GO
4

5
/****** Object:  StoredProcedure [dbo].[CRPTLPPOMESSPAYSLIP]    Script Date: 07/10/2025 15.44.08 ******/
6

7
SET ANSI_NULLS ON
8

9
GO
10

11
SET QUOTED_IDENTIFIER ON
12

13
GO
14

15
--USE [MinovaES_BIA_Prod]
16

17
--GO
18

19
--/****** Object:  StoredProcedure [dbo].[CRPTLPPOMESSPAYSLIP]    Script Date: 04/02/2025 12.04.51 ******/
20

21
--SET ANSI_NULLS ON
22

23
--GO
24

25
--SET QUOTED_IDENTIFIER ON
26

27
--GO
28

29
ALTER PROCEDURE [dbo].[CRPTLPPOMESSPAYSLIP]
30

31
    (
32

33
      @PayPeriod VARCHAR(6) ,
34

35
      @EmpID VARCHAR(20) ,
36

37
      @Running VARCHAR(2) ,
38

39
      @PayType VARCHAR(2) 
40

41
    )
42

43
AS
44

45

46

47
    --DECLARE @PayPeriod VARCHAR(6) = '202509'
48

49
    --DECLARE @EmpID VARCHAR(8) = '23034058'
50

51
    --DECLARE @Running VARCHAR(2) = '1'
52

53
    --DECLARE @PayType VARCHAR(2) = ''
54

55
    
56

57

58

59
    DECLARE @CompanyCode AS VARCHAR(50) 
60

61
    DECLARE @CompanyName AS VARCHAR(250) 
62

63
    DECLARE @CompanyLogo AS VARBINARY(MAX)
64

65
    DECLARE @PayMonth AS NVARCHAR(2)
66

67
    DECLARE @PayYear AS NVARCHAR(4)
68

69
    DECLARE @Begda AS NVARCHAR(8)
70

71
    DECLARE @Endda AS NVARCHAR(8)
72

73

74

75
    SET @PayMonth = RIGHT(@PayPeriod, 2)
76

77
    SET @PayYear = LEFT(@PayPeriod, 4)
78

79
    SET @Begda = @PayPeriod + '01'
80

81
    SET @Endda = CONVERT(NVARCHAR(8), DATEADD(d, -1, DATEADD(m, 1, @Begda)), 112)
82

83
    
84

85
   
86

87

88

89
    DECLARE @PaySlipSigned AS NVARCHAR(50)
90

91

92

93
    SELECT TOP ( 1 )
94

95
            @PaySlipSigned = Value
96

97
    FROM    dbo.PHRPYCU0307
98

99
    WHERE   ( PayrollParameter = 'PAYSLIPSIGNED' )
100

101
            AND ( StartDate <= @Endda
102

103
                  AND EndDate >= @Endda
104

105
                )
106

107

108

109
    IF ( @Running = '1' )
110

111
        BEGIN
112

113
            SELECT TOP ( 1 )
114

115
                    @CompanyCode = CompanyID
116

117
            FROM    dbo.PHRPYTR0300 
118

119
             WHERE   ( EmployeeID = @EmpID )
120

121
                    AND ( PayPeriodMonth = @PayMonth )
122

123
                    AND ( PayPeriodYear = @PayYear )
124

125
                    AND ( RunPeriodMonth = @PayMonth )
126

127
                    AND ( RunPeriodYear = @PayYear )
128

129
        END
130

131
    ELSE
132

133
        BEGIN
134

135
            SELECT TOP ( 1 )
136

137
                    @CompanyCode = CompanyID
138

139
            FROM    dbo.PHRPYTR0300SIM
140

141
            WHERE   ( EmployeeID = @EmpID )
142

143
                    AND ( PayPeriodMonth = @PayMonth )
144

145
                    AND ( PayPeriodMonth = @PayYear )
146

147
                    AND ( RunPeriodMonth = @PayMonth )
148

149
                    AND ( RunPeriodYear = @PayYear )
150

151
        END
152

153

154

155
       
156

157

158

159
    SELECT  @CompanyName = COM.CompanyDescription ,
160

161
            @CompanyLogo = CAT.FileData
162

163
    FROM    dbo.PCMEPCOMPID AS COM
164

165
	LEFT JOIN dbo.SFILECATALOG CAT ON COM.Logo = CAT.FileName
166

167
    WHERE   ( CompanyID = @CompanyCode )
168

169
            AND StartDate <= @Endda
170

171
            AND EndDate >= @Endda
172

173

174

175
	DECLARE @Disclaimer VARCHAR(250)
176

177
	SELECT @Disclaimer = Value1 FROM dbo.PCMEPGENPARAM WHERE Parameter = 'DISCLAIMEREPAYSLIP'
178

179

180

181

182

183
	IF @CompanyCode = '3000'
184

185
	BEGIN 
186

187
	SELECT @Disclaimer = Value1 FROM dbo.PCMEPGENPARAM WHERE Parameter = 'DISCLAIMEREPAYSLIPIHATEC'
188

189
	END
190

191

192

193

194

195

196

197

198

199

200

201

202

203
    IF ( @Running = '1' )
204

205
        BEGIN   
206

207
		
208

209
            SELECT DISTINCT @PaySlipSigned PaySlipSigned ,
210

211
                    @CompanyName CompanyName ,
212

213
                    @CompanyLogo logo ,
214

215
                    c308.ReportID ,
216

217
                    c308.GroupBy ,
218

219
                    c308P.PayslipDescription ParentDescription ,
220

221
                    c308.Sequence ,
222

223
                    c308.PayslipDescription ,
224

225
                    c308.PayrollType ,
226

227
                    c308.WageType ,
228

229
                    c308.IsDisplayWageType ,
230

231
                    c308.IsDisplayNumber ,
232

233
                    c308.IsDisplayRate ,
234

235
                    c308.IsDisplayAmount ,
236

237
                    CASE WHEN mdjoin15.HiringDate != '' THEN mdjoin15.HiringDate ELSE mdjoin.StartDate END AS StartDate,			----mdjoin.StartDate ,
238

239
					CASE WHEN mdjoin15.HiringDate != '' THEN dbo.fn_formatdatetime_indonesia(mdjoin15.HiringDate, 'DD MMMM YYYY') ELSE dbo.fn_formatdatetime_indonesia(mdjoin.StartDate, 'DD MMMM YYYY')  END AS StartDateDesc,
240

241
					--dbo.fn_formatdatetime_indonesia(mdjoin.StartDate, 'DD MMMM YYYY') as StartDateDesc,
242

243
                    c308.EndDate ,
244

245
                    c308.IsActive ,
246

247
                    c308.ChangeBy ,
248

249
                    c308.ChangeDate ,
250

251
                    c308.CreateBy ,
252

253
                    c308.CreateDate ,
254

255
                    tr301.EmployeeID ,
256

257
                    tr301.PayPeriodMonth ,
258

259
                    tr301.PayPeriodYear ,
260

261
                    tr301.RunPeriodMonth ,
262

263
                    tr301.RunPeriodYear ,
264

265
                    tr301.SplitIndicator ,
266

267
                    /*CAST(REPLACE(ISNULL(dbo.GetPEN(tr301.Rate), '0'), ',', '.') AS DECIMAL) 'rate' ,
268

269
                    CAST(REPLACE(ISNULL(dbo.GetPEN(tr301.Amount), '0'), ',',
270

271
                                 '.') AS DECIMAL) 'amount' ,
272

273
                    CAST(REPLACE(ISNULL(dbo.GetPEN(tr301R.Rate), '0'), ',',
274

275
                                 '.') AS DECIMAL) 'rate_r' ,
276

277
                    CAST(REPLACE(ISNULL(dbo.GetPEN(tr301R.Amount), '0'), ',',
278

279
                                 '.') AS DECIMAL) 'amount_r' ,
280

281
                    ( CAST(REPLACE(ISNULL(dbo.GetPEN(tr301.Rate), '0'), ',',
282

283
                                   '.') AS DECIMAL)
284

285
                      + CAST(REPLACE(ISNULL(dbo.GetPEN(tr301R.Rate), '0'), ',',
286

287
                                     '.') AS DECIMAL) ) 'total_rate' ,
288

289
                    ( CAST(REPLACE(ISNULL(dbo.GetPEN(tr301.Amount), '0'), ',',
290

291
                                   '.') AS DECIMAL)
292

293
                      + CAST(REPLACE(ISNULL(dbo.GetPEN(tr301R.Amount), '0'),
294

295
                                     ',', '.') AS DECIMAL) ) 'total_amount' ,*/
296

297
					/*CASE 
298

299
						WHEN tr301.WageType = 'MT' THEN  CASE WHEN CAST(REPLACE(ISNULL(dbo.GetPEN(tr301.Rate), '0'), ',','.') AS DECIMAL) > 0 THEN  CAST(REPLACE(ISNULL(dbo.GetPEN(tr301.Rate), '0'), ',','.') AS DECIMAL)  ELSE 0 END
300

301
						ELSE CAST(REPLACE(ISNULL(dbo.GetPEN(tr301.Rate), '0'), ',', '.') AS DECIMAL) END AS 'rate' ,
302

303
                    CASE 
304

305
						WHEN tr301.WageType = 'MT' THEN  CASE WHEN CAST(REPLACE(ISNULL(dbo.GetPEN(tr301.Amount), '0'), ',','.') AS DECIMAL) > 0 THEN  CAST(REPLACE(ISNULL(dbo.GetPEN(tr301.Amount), '0'), ',','.') AS DECIMAL)  ELSE 0 END
306

307
						ELSE CAST(REPLACE(ISNULL(dbo.GetPEN(tr301.Amount), '0'), ',','.') AS DECIMAL) END AS 'amount' ,*/
308

309
					CAST(REPLACE(ISNULL(dbo.GetPEN(tr301.Rate), '0'), ',', '.') AS DECIMAL) AS 'rate' ,
310

311
					CAST(REPLACE(ISNULL(dbo.GetPEN(tr301.Amount), '0'), ',','.') AS DECIMAL) AS 'amount' ,
312

313
                    CONVERT(DECIMAL(18,2),tr301.Number) AS Number,
314

315
                    tr301.Currency ,
316

317
                    tr301.Flag ,
318

319
                    md001.FullName ,
320

321
					md001.ExternalID ,
322

323
					divcode.DivisionCodeDescription,
324

325
					om1.ObjectDescription,
326

327
                    md003.TaxStatus AS MaritalDesc,
328

329
                    taxstat.TaxStatusDescription TaxStatusDesc ,
330

331
                    md001.MaritalStatus ,
332

333
                    taxstat.TaxStatusDescription TaxStatus ,
334

335
                    md003.PayrollType AS PayIndustry ,
336

337
                    md003.PayrollArea ,
338

339
                    md003.PayrollClass ,
340

341
                    md003.PayrollGrade ,
342

343
                    md003.NPWP ,
344

345
                    grd.PayrollGradeDescription AS PayGradeDesc ,
346

347
                    md002.Job ,
348

349
                    md002.EmployeeArea ,
350

351
                    area.EmployeeAreaDescription AreaDesc ,
352

353
                    md002.Organization ,
354

355
                    org.ObjectDescription OrgDesc ,
356

357
                    md002.Position ,
358

359
                    pos.ObjectDescription PosDesc
360

361
					,@Disclaimer AS Disclaimer
362

363
					,md002.EmployeeSubType
364

365
					,empstyp.EmployeeSubTypeDesc
366

367
            FROM    dbo.PHRPYCU0308 AS c308
368

369
                    LEFT JOIN dbo.PHRPYCU0308 AS c308P ON c308.GroupBy = c308P.ReportID
370

371
					INNER JOIN ( SELECT * ,
372

373
                                        'N' RetroType
374

375
                                 FROM   PHRPYTR0301
376

377
                                 UNION ALL
378

379
                                 SELECT * ,
380

381
                                        'R' RetroType
382

383
                                 FROM   PHRPYTR0301RET
384

385
                               ) tr301 ON c308.WageType = tr301.WageType
386

387
                                          AND c308.RetroType = tr301.RetroType
388

389
                                          AND ( c308.PayrollType = @PayType
390

391
                                                OR @PayType = ''
392

393
                                              )
394

395
                    /*INNER JOIN ( SELECT * ,
396

397
                                        'N' RetroType
398

399
                                 FROM   dbo.PHRPYTR0301
400

401
                               ) tr301 ON c308.WageType = tr301.WageType
402

403
                                          AND c308.RetroType = tr301.RetroType
404

405
                                          AND ( c308.PayrollType = @PayType
406

407
                                                OR @PayType = ''
408

409
                                              )
410

411
                    --INNER JOIN @TableResult AS TblOto ON TblOto.EmployeeID = tr301.EmployeeID
412

413
                    LEFT OUTER JOIN ( SELECT    * ,
414

415
                                                'R' retrotype
416

417
                                      FROM      dbo.PHRPYTR0301RET
418

419
                                    ) tr301R ON c308.WageType = tr301R.WageType
420

421
                                                AND ( c308.PayrollType = @PayType
422

423
                                                      OR @PayType = ''
424

425
                                                    )
426

427
                                                AND tr301R.EmployeeID = @EmpID
428

429
                                                AND tr301R.PayPeriodMonth = @PayMonth
430

431
                                                AND tr301R.PayPeriodYear = @PayYear
432

433
                                                AND tr301R.RunPeriodMonth = @PayMonth
434

435
                                                AND tr301R.RunPeriodYear = @PayYear */
436

437
                    INNER JOIN ( SELECT m1.*
438

439
                                 FROM   dbo.PHRPA0001 m1
440

441
                                 WHERE  ( m1.StartDate <= @Endda
442

443
                                          AND m1.EndDate >= @Endda
444

445
                                        )
446

447
                               ) md001 ON md001.EmployeeID = tr301.EmployeeID
448

449
                    LEFT JOIN ( SELECT  m1.*
450

451
                                FROM    dbo.PHRPA0003 m1
452

453
                                WHERE   ( m1.StartDate <= @Endda
454

455
                                          AND m1.EndDate >= @Endda
456

457
                                        )
458

459
                              ) md003 ON md001.EmployeeID = md003.EmployeeID
460

461
                    LEFT JOIN ( SELECT  m1.*
462

463
                                FROM    dbo.PHRPA0002 m1
464

465
                                WHERE   ( m1.StartDate <= @Endda
466

467
                                          AND m1.EndDate >= @Endda
468

469
                                        )
470

471
                              ) md002 ON tr301.EmployeeID = md002.EmployeeID
472

473
                    LEFT JOIN dbo.PCMEPEMPAREA area ON md002.EmployeeArea = area.EmployeeArea
474

475
                                                       AND area.StartDate <= @Endda
476

477
                                                       AND area.EndDate >= @Endda
478

479
                    LEFT JOIN ( SELECT  m1.*
480

481
                                FROM    dbo.PHROM0001 m1
482

483
                                WHERE   ObjectClass = 'O'
484

485
                                AND (StartDate <= @Endda AND EndDate >= @Endda)
486

487
				--AND (StartDate <= @Endda AND StartDate >= @Endda)
488

489
                              ) org ON md002.Organization = org.ObjectID
490

491
                    LEFT JOIN ( SELECT  m1.*
492

493
                                FROM    PHROM0001 m1
494

495
                                WHERE   ObjectClass = 'P'
496

497
                                AND (StartDate <= @Endda AND EndDate >= @Endda)
498

499
				--AND (StartDate <= @Endda AND StartDate >= @Endda)
500

501
                              ) pos ON md002.Position = pos.ObjectID
502

503
                    LEFT JOIN dbo.PHRPYPGRAD grd ON md003.PayrollGrade = grd.PayrollGrade
504

505
													AND md003.PayrollClass = grd.PayrollClass
506

507
                                                    AND grd.StartDate <= @Endda
508

509
                                                    AND grd.EndDate >= @Endda
510

511
                    LEFT JOIN dbo.PHRPAMSTAT ms ON md001.MaritalStatus = ms.MaritalStatus
512

513
                                                   AND ms.StartDate <= @Endda
514

515
                                                   AND ms.EndDate >= @Endda
516

517
                    LEFT JOIN dbo.PHRPYTAXSTAT taxstat ON md003.TaxStatus = taxstat.TaxStatus
518

519
                                                          AND taxstat.StartDate <= @Endda
520

521
                                                          AND taxstat.EndDate >= @Endda
522

523
					LEFT JOIN PCMEMPDVSCODE divcode ON md002.DivisionCode=divcode.DivisionCode
524

525
					LEFT JOIN PHRPA0002 mdpos ON mdpos.EmployeeID=md001.EmployeeID and mdpos.EndDate = '99991231'
526

527
					LEFT JOIN PHRPA0002 mdjoin ON mdjoin.EmployeeID=md001.EmployeeID and mdjoin.MovementType ='01'
528

529
					LEFT JOIN PHRPA0015 mdjoin15 ON mdjoin15.EmployeeID=md001.EmployeeID	
530

531
					LEFT JOIN PHROM0001 om1 ON mdpos.Position=om1.ObjectID and om1.ObjectClass='P'
532

533
					LEFT JOIN PCMEPEMPSTYP AS empstyp
534

535
						ON empstyp.EmployeeSubType = md002.EmployeeSubType
536

537
            WHERE   tr301.EmployeeID = @EmpID
538

539
                    AND tr301.PayPeriodMonth = @PayMonth
540

541
                    AND tr301.PayPeriodYear = @PayYear
542

543
                    AND tr301.RunPeriodMonth = @PayMonth
544

545
                    AND tr301.RunPeriodYear = @PayYear
546

547
			  --AND hr_tr0301.amount <> 0
548

549
                    AND CAST(REPLACE(ISNULL(dbo.GetPEN(tr301.Amount), '0'),
550

551
                                     ',', '.') AS DECIMAL) <> 0
552

553
            ORDER BY c308.GroupBy ,
554

555
                    c308.WageType
556

557
        END
558

559
    ELSE
560

561
        BEGIN   
562

563
		
564

565
            SELECT  @PaySlipSigned PaySlipSigned ,
566

567
                    @CompanyName CompanyName ,
568

569
                    @CompanyLogo logo ,
570

571
                    c308.ReportID ,
572

573
                    c308.GroupBy ,
574

575
                    c308P.PayslipDescription ParentDescription ,
576

577
                    c308.Sequence ,
578

579
                    c308.PayslipDescription ,
580

581
                    c308.PayrollType ,
582

583
                    c308.WageType ,
584

585
                    c308.IsDisplayWageType ,
586

587
                    c308.IsDisplayNumber ,
588

589
                    c308.IsDisplayRate ,
590

591
                    c308.IsDisplayAmount ,
592

593
					dbo.fn_formatdatetime_indonesia(mdjoin.StartDate, 'DD MMMM YYYY') as StartDateDesc,
594

595
                    mdjoin.StartDate ,
596

597
                    c308.EndDate ,
598

599
                    c308.IsActive ,
600

601
                    c308.ChangeBy ,
602

603
                    c308.ChangeDate ,
604

605
                    c308.CreateBy ,
606

607
                    c308.CreateDate ,
608

609
                    tr301Sim.EmployeeID ,
610

611
                    tr301Sim.PayPeriodMonth ,
612

613
                    tr301Sim.PayPeriodYear ,
614

615
                    tr301Sim.RunPeriodMonth ,
616

617
                    tr301Sim.RunPeriodYear ,
618

619
                    tr301Sim.SplitIndicator ,
620

621
                    CAST(REPLACE(ISNULL(dbo.GetPEN(tr301Sim.Rate), '0'), ',',
622

623
                                 '.') AS DECIMAL) 'rate' ,
624

625
                    CAST(REPLACE(ISNULL(dbo.GetPEN(tr301Sim.Amount), '0'), ',',
626

627
                                 '.') AS DECIMAL) 'amount' ,
628

629
                    CAST(REPLACE(ISNULL(dbo.GetPEN(tr301RSim.Rate), '0'), ',',
630

631
                                 '.') AS DECIMAL) 'rate_r' ,
632

633
                    CAST(REPLACE(ISNULL(dbo.GetPEN(tr301RSim.Amount), '0'),
634

635
                                 ',', '.') AS DECIMAL) 'amount_r' ,
636

637
                    ( CAST(REPLACE(ISNULL(dbo.GetPEN(tr301Sim.Rate), '0'), ',',
638

639
                                   '.') AS DECIMAL)
640

641
                      + CAST(REPLACE(ISNULL(dbo.GetPEN(tr301RSim.Rate), '0'),
642

643
                                     ',', '.') AS DECIMAL) ) 'total_rate' ,
644

645
                    ( CAST(REPLACE(ISNULL(dbo.GetPEN(tr301Sim.Amount), '0'),
646

647
                                   ',', '.') AS DECIMAL)
648

649
                      + CAST(REPLACE(ISNULL(dbo.GetPEN(tr301RSim.Amount), '0'),
650

651
                                     ',', '.') AS DECIMAL) ) 'total_amount' ,
652

653
                    tr301Sim.Number ,
654

655
                    tr301Sim.Currency ,
656

657
                    tr301Sim.Flag ,
658

659
                    md001.FullName ,
660

661
					md001.ExternalID ,
662

663
					divcode.DivisionCodeDescription,
664

665
					om1.ObjectDescription,
666

667
                    md003.TaxStatus AS MaritalDesc,
668

669
                    taxstat.TaxStatusDescription TaxStatusDesc ,
670

671
                    md001.MaritalStatus ,
672

673
                    taxstat.TaxStatusDescription TaxStatus ,
674

675
                    md003.PayrollType AS PayIndustry ,
676

677
                    md003.PayrollArea ,
678

679
                    md003.PayrollClass ,
680

681
                    md003.PayrollGrade ,
682

683
                    md003.NPWP ,
684

685
                    grd.PayrollGradeDescription AS PayGradeDesc ,
686

687
                    md002.Job ,
688

689
                    md002.EmployeeArea ,
690

691
                    area.EmployeeAreaDescription AreaDesc ,
692

693
                    md002.Organization ,
694

695
                    org.ObjectDescription OrgDesc ,
696

697
                    md002.Position ,
698

699
                    pos.ObjectDescription PosDesc
700

701
					,@Disclaimer AS Disclaimer
702

703
            FROM    dbo.PHRPYCU0308 AS c308
704

705
                    LEFT JOIN dbo.PHRPYCU0308 AS c308P ON c308.GroupBy = c308P.ReportID
706

707
                    INNER JOIN ( SELECT * ,
708

709
                                        'N' RetroType
710

711
                                 FROM   dbo.PHRPYTR0301SIM
712

713
                               ) tr301Sim ON c308.WageType = tr301Sim.WageType
714

715
                                             AND c308.RetroType = tr301Sim.RetroType
716

717
                                             AND ( c308.PayrollType = @PayType
718

719
                                                   OR @PayType = ''
720

721
                                                 )
722

723
                    LEFT OUTER JOIN ( SELECT    * ,
724

725
                                                'R' retrotype
726

727
                                      FROM      dbo.PHRPYTR0301RETSIM
728

729
                                    ) tr301RSim ON c308.WageType = tr301RSim.WageType
730

731
                                                   AND ( c308.PayrollType = @PayType
732

733
                                                         OR @PayType = ''
734

735
                                                       )
736

737
                                                   AND tr301RSim.EmployeeID = @EmpID
738

739
                                                   --AND tr301RSim.PayPeriodMonth = @PayMonth
740

741
                                                   --AND tr301RSim.PayPeriodYear = @PayYear
742

743
                                                   AND tr301RSim.RunPeriodMonth = @PayMonth
744

745
                                                   AND tr301RSim.RunPeriodYear = @PayYear
746

747
                    INNER JOIN ( SELECT m1.*
748

749
                                 FROM   dbo.PHRPA0001 m1
750

751
                                 WHERE  ( m1.StartDate <= @Endda
752

753
                                          AND m1.EndDate >= @Endda
754

755
                                        )
756

757
                               ) md001 ON md001.EmployeeID = tr301Sim.EmployeeID
758

759
                    LEFT JOIN ( SELECT  m1.*
760

761
                                FROM    dbo.PHRPA0003 m1
762

763
                                WHERE   ( m1.StartDate <= @Endda
764

765
                                          AND m1.EndDate >= @Endda
766

767
                                        )
768

769
                              ) md003 ON md001.EmployeeID = md003.EmployeeID
770

771
                    LEFT JOIN ( SELECT  m1.*
772

773
                                FROM    dbo.PHRPA0002 m1
774

775
                                WHERE   ( m1.StartDate <= @Endda
776

777
                                          AND m1.EndDate >= @Endda
778

779
                                        )
780

781
                              ) md002 ON tr301Sim.EmployeeID = md002.EmployeeID
782

783
                    LEFT JOIN dbo.PCMEPEMPAREA area ON md002.EmployeeArea = area.EmployeeArea
784

785
                                                       AND area.StartDate <= @Endda
786

787
                                                       AND area.EndDate >= @Endda
788

789
                    LEFT JOIN ( SELECT  m1.*
790

791
                                FROM    dbo.PHROM0001 m1
792

793
                                WHERE   ObjectClass = 'O'
794

795
                                AND (StartDate <= @Endda AND EndDate >= @Endda)
796

797
				--AND (StartDate <= @Endda AND StartDate >= @Endda)
798

799
                              ) org ON md002.Organization = org.ObjectID
800

801
                    LEFT JOIN ( SELECT  m1.*
802

803
                                FROM    PHROM0001 m1
804

805
                                WHERE   ObjectClass = 'P'
806

807
                                AND (StartDate <= @Endda AND EndDate >= @Endda)
808

809
				--AND (StartDate <= @Endda AND StartDate >= @Endda)
810

811
                              ) pos ON md002.Position = pos.ObjectID
812

813
                    LEFT JOIN dbo.PHRPYPGRAD grd ON md003.PayrollGrade = grd.PayrollGrade
814

815
													AND md003.PayrollClass = grd.PayrollClass
816

817
                                                    AND grd.StartDate <= @Endda
818

819
                                                    AND grd.EndDate >= @Endda
820

821
                    LEFT JOIN dbo.PHRPAMSTAT ms ON md001.MaritalStatus = ms.MaritalStatus
822

823
                                                   AND ms.StartDate <= @Endda
824

825
                                                   AND ms.EndDate >= @Endda
826

827
                    LEFT JOIN dbo.PHRPYTAXSTAT taxstat ON md003.TaxStatus = taxstat.TaxStatus
828

829
                                                          AND taxstat.StartDate <= @Endda
830

831
                                                          AND taxstat.EndDate >= @Endda
832

833
					LEFT JOIN PCMEMPDVSCODE divcode ON md002.DivisionCode=divcode.DivisionCode
834

835
					LEFT JOIN PHRPA0002 mdpos ON mdpos.EmployeeID=md001.EmployeeID and mdpos.EndDate = '99991231'
836

837
					LEFT JOIN PHRPA0002 mdjoin ON mdjoin.EmployeeID=md001.EmployeeID and mdjoin.MovementType ='01'
838

839
					LEFT JOIN PHROM0001 om1 ON mdpos.Position=om1.ObjectID and om1.ObjectClass='P'
840

841
            WHERE   tr301Sim.EmployeeID = @EmpID
842

843
                    AND tr301Sim.PayPeriodMonth = @PayMonth
844

845
                    AND tr301Sim.PayPeriodYear = @PayYear
846

847
                    AND tr301Sim.RunPeriodMonth = @PayMonth
848

849
                    AND tr301Sim.RunPeriodYear = @PayYear
850

851
                    AND CAST(REPLACE(ISNULL(dbo.GetPEN(tr301Sim.Amount), '0'),
852

853
                                     ',', '.') AS DECIMAL) <> 0
854

855
            ORDER BY c308.GroupBy ,
856

857
                    c308.WageType
858

859
        END
(4-4/4)