Project

General

Profile

Bug #2883 » PRPTFIBUKUBESARSLV2_20240913.sql

Tri Rizqiaty, 09/13/2024 11:22 AM

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

3
(
4

5
	@FiscalYear VARCHAR(20)
6

7
	,@FiscalPeriod VARCHAR(20)
8

9
	,@FiscalPeriodTo VARCHAR(20)
10

11
	,@CompanyID VARCHAR(20)
12

13
	,@GlAccount VARCHAR(20)
14

15
	,@BusinessUnit VARCHAR(20)
16

17
	,@AccountGroup VARCHAR(20)
18

19
	,@SubLedgerType VARCHAR(20)
20

21
	,@CostCenter VARCHAR(20)
22

23
	,@SubLedgerID VARCHAR(20)
24

25
)
26

27
AS
28

29

30

31
--DECLARE @FiscalYear VARCHAR(20) = '2024';
32

33
--DECLARE @FiscalPeriod VARCHAR(20) = '01';
34

35
--DECLARE @FiscalPeriodTo VARCHAR(20) = '01';
36

37
--DECLARE @CompanyID VARCHAR(20) = '1000';
38

39
--DECLARE @GlAccount VARCHAR(20) = '1-1410';
40

41
--DECLARE @BusinessUnit VARCHAR(20) = '';
42

43
--DECLARE @AccountGroup VARCHAR(20) = '';
44

45
--DECLARE @SubLedgerType VARCHAR(20) = '01';
46

47
--DECLARE @CostCenter VARCHAR(20) = '';
48

49
--DECLARE @SubLedgerID VARCHAR(20) = '';
50

51

52

53
DECLARE @BeforePeriod VARCHAR(20) = SUBSTRING(CONVERT(NVARCHAR(8), DATEADD(d, -1, @FiscalYear + @FiscalPeriod + '01'), 112), 5, 2);
54

55
DECLARE @BeforeYear VARCHAR(20) = LEFT(CONVERT(NVARCHAR(8), DATEADD(d, -1, @FiscalYear + @FiscalPeriod + '01'), 112), 4);
56

57

58

59

60

61
DECLARE @TblSaldo TABLE
62

63
(
64

65
    RowNumber DECIMAL(18, 0),
66

67
    GLAccountID VARCHAR(30),
68

69
    GLAccounntDesc VARCHAR(250),
70

71
    DocNo VARCHAR(30),
72

73
    DocDesc VARCHAR(500),
74

75
    FiscalYear VARCHAR(20),
76

77
    FiscalPeriod VARCHAR(20),
78

79
    PostingDate VARCHAR(50),
80

81
    Currency VARCHAR(20),
82

83
    AmountDebet DECIMAL(30, 2),
84

85
    AmountCredit DECIMAL(30, 2),
86

87
    AmountBalance DECIMAL(30, 2),
88

89
    CompCurr VARCHAR(20),
90

91
    AmountDebetCompCurr DECIMAL(30, 2),
92

93
    AmountCreditCompCurr DECIMAL(30, 2),
94

95
    AmountBalanceCompCurr DECIMAL(30, 2),
96

97
    subledgertype VARCHAR(50),
98

99
    subledgerid VARCHAR(50),
100

101
    subledgerdesc VARCHAR(250),
102

103
    AccSubType VARCHAR(20),
104

105
    AccClass VARCHAR(20),
106

107
	ItemDesc VARCHAR(500)
108

109
)
110

111

112

113
DECLARE @TblSaldoAwal TABLE ---- buat peride initial balance
114

115
(
116

117
    RowNumber DECIMAL(18, 0),
118

119
    GLAccountID VARCHAR(30),
120

121
    GLAccounntDesc VARCHAR(250),
122

123
    DocNo VARCHAR(30),
124

125
    DocDesc VARCHAR(500),
126

127
    FiscalYear VARCHAR(20),
128

129
    FiscalPeriod VARCHAR(20),
130

131
    PostingDate VARCHAR(50),
132

133
    Currency VARCHAR(20),
134

135
    AmountDebet DECIMAL(30, 2),
136

137
    AmountCredit DECIMAL(30, 2),
138

139
    AmountBalance DECIMAL(30, 2),
140

141
    CompCurr VARCHAR(20),
142

143
    AmountDebetCompCurr DECIMAL(30, 2),
144

145
    AmountCreditCompCurr DECIMAL(30, 2),
146

147
    AmountBalanceCompCurr DECIMAL(30, 2),
148

149
    subledgertype VARCHAR(50),
150

151
    subledgerid VARCHAR(50),
152

153
    subledgerdesc VARCHAR(250),
154

155
    AccSubType VARCHAR(20),
156

157
    AccClass VARCHAR(20),
158

159
	ItemDesc VARCHAR(500)
160

161
)
162

163

164

165
DECLARE @TblSaldoTanpaSL TABLE
166

167
(
168

169
    RowNumber DECIMAL(18, 0),
170

171
    GLAccountID VARCHAR(30),
172

173
    GLAccounntDesc VARCHAR(250),
174

175
    DocNo VARCHAR(30),
176

177
    DocDesc VARCHAR(500),
178

179
    FiscalYear VARCHAR(20),
180

181
    FiscalPeriod VARCHAR(20),
182

183
    PostingDate VARCHAR(50),
184

185
    Currency VARCHAR(20),
186

187
    AmountDebet DECIMAL(30, 2),
188

189
    AmountCredit DECIMAL(30, 2),
190

191
    AmountBalance DECIMAL(30, 2),
192

193
    CompCurr VARCHAR(20),
194

195
    AmountDebetCompCurr DECIMAL(30, 2),
196

197
    AmountCreditCompCurr DECIMAL(30, 2),
198

199
    AmountBalanceCompCurr DECIMAL(30, 2),
200

201
    subledgertype VARCHAR(50),
202

203
    subledgerid VARCHAR(50),
204

205
    subledgerdesc VARCHAR(250),
206

207
    AccSubType VARCHAR(20),
208

209
    AccClass VARCHAR(20),
210

211
	ItemDesc VARCHAR(500)
212

213
)
214

215

216

217
DECLARE @TblSaldoSum TABLE
218

219
(
220

221
    AccSubType VARCHAR(20),
222

223
    AccClass VARCHAR(20),
224

225
    GLAccountID VARCHAR(50),
226

227
	SLType VARCHAR(20),
228

229
	SLID VARCHAR(20),
230

231
	SLIDDesc VARCHAR(250),
232

233
    AmountDebet DECIMAL(30, 2),
234

235
    AmountCredit DECIMAL(30, 2),
236

237
    AmountBalance DECIMAL(30, 2),
238

239
    AmountDebetCompCurr DECIMAL(30, 2),
240

241
    AmountCreditCompCurr DECIMAL(30, 2),
242

243
    AmountBalanceCompCurr DECIMAL(30, 2)
244

245
)
246

247

248

249
DECLARE @TblSaldoSumTanpaSL TABLE
250

251
(
252

253
    AccSubType VARCHAR(20),
254

255
    AccClass VARCHAR(20),
256

257
    GLAccountID VARCHAR(50),
258

259
    AmountDebet DECIMAL(30, 2),
260

261
    AmountCredit DECIMAL(30, 2),
262

263
    AmountBalance DECIMAL(30, 2),
264

265
    AmountDebetCompCurr DECIMAL(30, 2),
266

267
    AmountCreditCompCurr DECIMAL(30, 2),
268

269
    AmountBalanceCompCurr DECIMAL(30, 2)
270

271
)
272

273

274

275
DECLARE @TPosting TABLE
276

277
(
278

279
    rowno DECIMAL(18, 0),
280

281
    [DocNo] [VARCHAR](15) NOT NULL,
282

283
    [DocItemID] [BIGINT] NOT NULL,
284

285
    [DocType] [VARCHAR](5) NULL,
286

287
    [DocDate] [VARCHAR](8) NULL,
288

289
    [DocStatus] [VARCHAR](2) NULL,
290

291
    [FiscalYear] [VARCHAR](5) NULL,
292

293
    [FiscalPeriod] [VARCHAR](5) NULL,
294

295
    [CompanyID] [VARCHAR](5) NULL,
296

297
    [BusinessUnit] [VARCHAR](10) NULL,
298

299
    [CostCenter] [VARCHAR](10) NULL,
300

301
    [SLType] [VARCHAR](30) NULL,
302

303
    [SLID] [VARCHAR](30) NULL,
304

305
    [PostingDate] [VARCHAR](8) NULL,
306

307
    [GLAccountID] [VARCHAR](20) NULL,
308

309
    [Currency] [VARCHAR](5) NULL,
310

311
    [AmountDebet] [DECIMAL](18, 2) NULL,
312

313
    [AmountCredit] [DECIMAL](18, 2) NULL,
314

315
    [AmountDebetCompCurr] [DECIMAL](18, 2) NULL,
316

317
    [AmountCreditCompCurr] [DECIMAL](18, 2) NULL,
318

319
    [CreateBy] [VARCHAR](18) NULL,
320

321
    [CreateDate] [VARCHAR](14) NULL,
322

323
    [ChangeBy] [VARCHAR](18) NULL,
324

325
    [ChangeDate] [VARCHAR](18) NULL,
326

327
    [CompanyCurrency] [VARCHAR](5) NULL,
328

329
    [ItemStatus] [VARCHAR](2) NULL
330

331
	,CashActivityType  [VARCHAR](50) 
332

333
	,CashActivityDetail [VARCHAR](50)
334

335
);
336

337

338

339
INSERT INTO @TPosting
340

341
SELECT DISTINCT
342

343
       CONVERT(DECIMAL(22,0),'2' + CONVERT(VARCHAR(22),ROW_NUMBER() OVER (PARTITION BY post.GLAccountID, post.SLType, post.SLID ORDER BY post.PostingDate, post.GLAccountID, post.SLType, post.SLID ASC))),
344

345
       *
346

347
FROM dbo.PTRFILOPOSTING AS post
348

349
WHERE post.FiscalYear = @FiscalYear
350

351
      AND (post.FiscalPeriod >= @FiscalPeriod AND post.FiscalPeriod <= @FiscalPeriodTo)
352

353
      AND (post.GLAccountID = @GlAccount OR @GlAccount = '')
354

355
      AND (post.CostCenter = @CostCenter OR @CostCenter = '')
356

357
      AND (post.CompanyID = @CompanyID OR @CompanyID = '')
358

359
	  AND (post.SLType = @SubLedgerType OR @SubLedgerType = '')
360

361
	  AND (post.SLID = @SubLedgerID OR @SubLedgerID = '')
362

363
	  --AND post.GLAccountID IN ('1-1410','1-1020') --('4-1001','1-1012','3-1000') 
364

365

366

367
INSERT INTO @TblSaldo
368

369
SELECT DISTINCT
370

371
       docpost.rowno,
372

373
       gl.GlAccount,
374

375
       gl.Description,
376

377
       docpost.DocNo,
378

379
       finhead.Description AS DocDesc,
380

381
       docpost.FiscalYear,
382

383
       docpost.FiscalPeriod,
384

385
       dbo.fn_formatdatetime_indonesia(docpost.PostingDate, 'dd/mm/yyyy') AS PostingDate,
386

387
       curr.CurrencyDescription,
388

389
       docpost.AmountDebet,
390

391
       docpost.AmountCredit,
392

393
       0,
394

395
       compcurr.CurrencyDescription,
396

397
       docpost.AmountDebetCompCurr,
398

399
       docpost.AmountCreditCompCurr,
400

401
       0,
402

403
       ISNULL(fltyp.Description,'') AS subledgertyped,
404

405
       docpost.SLID AS subledgerid,
406

407
       ISNULL(SL.[Description],'') AS subledgerdesc,
408

409
       gl.AccountSubTyp,
410

411
       gl.AccountClass,   
412

413
	   finitem.Description itemdesc
414

415
FROM dbo.PCMFILOCOAGL AS gl
416

417
    LEFT JOIN @TPosting AS docpost
418

419
        ON gl.GlAccount = docpost.GLAccountID
420

421
	LEFT JOIN dbo.PTRFINANCEHEAD AS finhead
422

423
		ON docpost.DocNo = finhead.DocNo
424

425
	LEFT JOIN dbo.PTRFINANCEITEM AS finitem
426

427
		ON docpost.DocNo = finitem.DocNo
428

429
    LEFT JOIN dbo.PHRPYCURR AS curr
430

431
        ON curr.Currency = docpost.Currency
432

433
    LEFT JOIN dbo.PHRPYCURR AS compcurr
434

435
        ON compcurr.Currency = docpost.CompanyCurrency
436

437
    LEFT JOIN PCMFILOSLTYPE AS fltyp
438

439
        ON docpost.SLType = fltyp.SubLedgerType
440

441
    LEFT JOIN PMDSL0001 AS SL
442

443
        ON SL.SubLedgerID = docpost.SLID
444

445
WHERE (gl.AccountClass = @AccountGroup OR @AccountGroup = '')
446

447
	AND ( gl.GlAccount = @GlAccount OR @GlAccount = '' )
448

449
	AND ( docpost.SLType = @SubLedgerType OR @SubLedgerType = '' )
450

451
	AND ( docpost.SLID = @SubLedgerID OR @SubLedgerID = '' )
452

453
	AND ( docpost.FiscalYear = @FiscalYear OR @FiscalYear = '' )
454

455
	AND ( docpost.FiscalPeriod >= @FiscalPeriod OR docpost.FiscalPeriod <= @FiscalPeriodTo )
456

457
	AND ( docpost.CostCenter = @CostCenter OR @CostCenter = '')
458

459
	AND ( finhead.FiscalYear = @FiscalYear OR @FiscalYear = '')
460

461
	AND ( finhead.FiscalPeriod >= @FiscalPeriod OR finhead.FiscalPeriod <= @FiscalPeriodTo )
462

463
	AND ( finitem.FiscalYear = @FiscalYear OR @FiscalYear = '')
464

465
	AND ( finitem.FiscalPeriod >= @FiscalPeriod OR finitem.FiscalPeriod <= @FiscalPeriodTo )
466

467
ORDER BY gl.GlAccount;
468

469

470

471

472

473
DECLARE @TableGL TABLE
474

475
(
476

477
    GLAccountID VARCHAR(20) --, AccSubType VARCHAR(20), AccClass VARCHAR(20)
478

479
)
480

481

482

483
IF (@SubLedgerType <> '')
484

485
BEGIN
486

487
    INSERT INTO @TableGL
488

489
    SELECT DISTINCT GLAccountID --, AccSubType, AccClass
490

491
    FROM @TblSaldo
492

493
	--WHERE GLAccountID IN ('1-1410','1-1020') --('4-1001','1-1012','3-1000') 
494

495
END;
496

497
ELSE
498

499
BEGIN
500

501
    INSERT INTO @TableGL
502

503
    SELECT DISTINCT GlAccount --, AccountSubTyp, AccountClass
504

505
    FROM PCMFILOCOAGL 
506

507
	--WHERE GLAccount IN ('1-1410','1-1020') --('4-1001','1-1012','3-1000')  
508

509
END
510

511

512

513

514

515
INSERT INTO @TblSaldoAwal ---- buat peride initial balance
516

517
SELECT DISTINCT
518

519
       '1',
520

521
       gl.GlAccount,
522

523
       gl.Description,
524

525
       '',
526

527
       'Saldo Awal',
528

529
       ISNULL(saldoawal.FiscalYear, @BeforeYear) AS FiscalYear,
530

531
       ISNULL(saldoawal.FiscalPeriod, @BeforePeriod) AS FiscalPeriod,
532

533
       '',
534

535
       saldoawal.Currency,
536

537
	   0,   --saldoawal.AmountDebet ,
538

539
	   0,   --saldoawal.AmountCredit ,
540

541
       CASE WHEN gl.AccountType = 'PL' AND @FiscalPeriod = '01' THEN 0 ELSE ISNULL(saldoawal.AmountBalance, 0) END, --saldoawal.AmountBalance ,
542

543
       saldoawal.CompanyCurrency,
544

545
	   0,   --saldoawal.AmountDebetCompCurr ,
546

547
	   0,   --saldoawal.AmountCreditCompCurr ,
548

549
       CASE WHEN gl.AccountType = 'PL' AND @FiscalPeriod = '01' THEN 0 ELSE ISNULL(saldoawal.AmountBalanceCompCurr, 0) END, --saldoawal.AmountBalanceCompCurr ,
550

551
	   ISNULL(fltyp.Description,'') AS SLType,
552

553
       ISNULL(saldoawal.SLID,'') AS SLID,
554

555
       ISNULL(SL.Description,'') AS SLIDDesc,
556

557
       gl.AccountSubTyp,
558

559
       gl.AccountClass,
560

561
	   ''
562

563
FROM dbo.PCMFILOCOAGL AS gl
564

565
    INNER JOIN @TableGL AS tgl
566

567
        ON gl.GlAccount = tgl.GLAccountID
568

569
    LEFT JOIN dbo.PTRFICOMPACCBALANCE AS saldoawal
570

571
        ON gl.GlAccount = saldoawal.GlAccount
572

573
        AND saldoawal.FiscalPeriod = @BeforePeriod
574

575
        AND saldoawal.FiscalYear = @BeforeYear
576

577
        AND ( saldoawal.BusinessUnit = @BusinessUnit OR @BusinessUnit = '' )
578

579
        AND ( saldoawal.CompanyID = @CompanyID OR @CompanyID = '' )
580

581
		AND ( saldoawal.SLType = @SubLedgerType OR @SubLedgerType = '')
582

583
	    AND ( saldoawal.SLID = @SubLedgerID OR @SubLedgerID = '')
584

585
	LEFT JOIN PCMFILOSLTYPE AS fltyp
586

587
        ON saldoawal.SLType = fltyp.SubLedgerType
588

589
    LEFT JOIN PMDSL0001 AS SL
590

591
        ON SL.SubLedgerID = saldoawal.SLID
592

593
WHERE ( gl.AccountClass = @AccountGroup OR @AccountGroup = '' )
594

595
      AND ( gl.GlAccount = @GlAccount OR @GlAccount = '' )
596

597
      AND ( saldoawal.CostCenter = @CostCenter OR @CostCenter = '' )
598

599
	  
600

601

602

603
INSERT INTO @TblSaldoAwal ---- buat peride initial balance
604

605
SELECT DISTINCT
606

607
       '0',
608

609
       gl.GlAccount,
610

611
       gl.Description,
612

613
       '',
614

615
       'Saldo Awal',
616

617
       ISNULL(saldoawal.FiscalYear, @BeforeYear) AS FiscalYear,
618

619
       ISNULL(saldoawal.FiscalPeriod, @BeforePeriod) AS FiscalPeriod,
620

621
       '',
622

623
       saldoawal.Currency,
624

625
	   0,   --saldoawal.AmountDebet ,
626

627
	   0,   --saldoawal.AmountCredit ,
628

629
       CASE WHEN gl.AccountType = 'PL' AND @FiscalPeriod = '01' THEN 0 ELSE ISNULL(saldoawal.AmountBalance, 0) END, --saldoawal.AmountBalance ,
630

631
       saldoawal.CompanyCurrency,
632

633
	   0,   --saldoawal.AmountDebetCompCurr ,
634

635
	   0,   --saldoawal.AmountCreditCompCurr ,
636

637
       CASE WHEN gl.AccountType = 'PL' AND @FiscalPeriod = '01' THEN 0 ELSE ISNULL(saldoawal.AmountBalanceCompCurr, 0) END, --saldoawal.AmountBalanceCompCurr ,
638

639
	   '' AS SLType,
640

641
       '' AS SLID,
642

643
       '' AS SLIDDesc,
644

645
       gl.AccountSubTyp,
646

647
       gl.AccountClass,
648

649
	   ''
650

651
FROM dbo.PCMFILOCOAGL AS gl
652

653
    INNER JOIN @TableGL AS tgl
654

655
        ON gl.GlAccount = tgl.GLAccountID
656

657
    LEFT JOIN dbo.PTRFICOMPACCBALANCE AS saldoawal
658

659
        ON gl.GlAccount = saldoawal.GlAccount
660

661
        AND saldoawal.FiscalPeriod = @BeforePeriod
662

663
        AND saldoawal.FiscalYear = @BeforeYear
664

665
        AND ( saldoawal.BusinessUnit = @BusinessUnit OR @BusinessUnit = '' )
666

667
        AND ( saldoawal.CompanyID = @CompanyID OR @CompanyID = '' )
668

669
		AND ( saldoawal.SLType = @SubLedgerType OR @SubLedgerType = '')
670

671
	    AND ( saldoawal.SLID = @SubLedgerID OR @SubLedgerID = '')
672

673
WHERE ( gl.AccountClass = @AccountGroup OR @AccountGroup = '' )
674

675
      AND ( gl.GlAccount = @GlAccount OR @GlAccount = '' )
676

677
      AND ( saldoawal.CostCenter = @CostCenter OR @CostCenter = '' )
678

679

680

681

682

683
DECLARE @IsBeforePeriodExist DECIMAL(22,0) ---- buat periode initial balance
684

685
SELECT DISTINCT @IsBeforePeriodExist = FiscalPeriod FROM @TblSaldoAwal ---- buat periode initial balance
686

687

688

689
IF(@IsBeforePeriodExist IS NULL)  ---- buat periode initial balance
690

691
BEGIN
692

693
	INSERT INTO @TblSaldo
694

695
	SELECT DISTINCT
696

697
		   '1',
698

699
		   gl.GlAccount,
700

701
		   gl.Description,
702

703
		   '',
704

705
		   'Saldo Awal',
706

707
		   saldoawal.FiscalYear,
708

709
		   saldoawal.FiscalPeriod,
710

711
		   '',
712

713
		   saldoawal.Currency,
714

715
		   0,   --saldoawal.AmountDebet ,
716

717
		   0,   --saldoawal.AmountCredit ,
718

719
		   CASE WHEN gl.AccountType = 'PL' AND @FiscalPeriod = '01' THEN 0
720

721
			   ELSE ISNULL(saldoawal.AmountBalance, 0)
722

723
		   END, --saldoawal.AmountBalance ,
724

725
		   saldoawal.CompanyCurrency,
726

727
		   0,   --saldoawal.AmountDebetCompCurr ,
728

729
		   0,   --saldoawal.AmountCreditCompCurr ,
730

731
		   CASE WHEN gl.AccountType = 'PL' AND @FiscalPeriod = '01' THEN 0
732

733
			   ELSE ISNULL(saldoawal.AmountBalanceCompCurr, 0)
734

735
		   END, --saldoawal.AmountBalanceCompCurr ,
736

737
		   ISNULL(fltyp.Description,'') AS SLType,
738

739
		   ISNULL(saldoawal.SLID,'') AS SLID,
740

741
		   ISNULL(SL.Description,'') AS SLIDDesc,
742

743
		   gl.AccountSubTyp,
744

745
		   gl.AccountClass,
746

747
		   ''
748

749
	FROM dbo.PCMFILOCOAGL AS gl
750

751
		INNER JOIN @TableGL AS tgl
752

753
			ON gl.GlAccount = tgl.GLAccountID
754

755
		LEFT JOIN dbo.PTRFICOMPACCBALANCE AS saldoawal
756

757
			ON gl.GlAccount = saldoawal.GlAccount
758

759
			   AND saldoawal.FiscalPeriod = @FiscalPeriod
760

761
			   AND saldoawal.FiscalYear = @FiscalYear
762

763
			   AND ( saldoawal.BusinessUnit = @BusinessUnit OR @BusinessUnit = '' )
764

765
			   AND ( saldoawal.CompanyID = @CompanyID OR @CompanyID = '' )
766

767
			   AND ( saldoawal.SLType = @SubLedgerType OR @SubLedgerType = '')
768

769
			   AND ( saldoawal.SLID = @SubLedgerID OR @SubLedgerID = '')
770

771
		LEFT JOIN PCMFILOSLTYPE AS fltyp
772

773
			ON saldoawal.SLType = fltyp.SubLedgerType
774

775
		LEFT JOIN PMDSL0001 AS SL
776

777
			ON SL.SubLedgerID = saldoawal.SLID
778

779
	WHERE ( gl.AccountClass = @AccountGroup OR @AccountGroup = '' )
780

781
		  AND ( gl.GlAccount = @GlAccount OR @GlAccount = '' )
782

783
		  AND ( saldoawal.CostCenter = @CostCenter OR @CostCenter = '' )
784

785

786

787
	INSERT INTO @TblSaldo
788

789
	SELECT DISTINCT
790

791
		   '0',
792

793
		   gl.GlAccount,
794

795
		   gl.Description,
796

797
		   '',
798

799
		   'Saldo Awal',
800

801
		   ISNULL(saldoawal.FiscalYear, @BeforeYear) AS FiscalYear,
802

803
		   ISNULL(saldoawal.FiscalPeriod, @BeforePeriod) AS FiscalPeriod,
804

805
		   '',
806

807
		   saldoawal.Currency,
808

809
		   0,   --saldoawal.AmountDebet ,
810

811
		   0,   --saldoawal.AmountCredit ,
812

813
		   CASE WHEN gl.AccountType = 'PL' AND @FiscalPeriod = '01' THEN 0
814

815
			   ELSE ISNULL(saldoawal.AmountBalance, 0)
816

817
		   END, --saldoawal.AmountBalance ,
818

819
		   saldoawal.CompanyCurrency,
820

821
		   0,   --saldoawal.AmountDebetCompCurr ,
822

823
		   0,   --saldoawal.AmountCreditCompCurr ,
824

825
		   CASE WHEN gl.AccountType = 'PL' AND @FiscalPeriod = '01' THEN 0
826

827
			   ELSE ISNULL(saldoawal.AmountBalanceCompCurr, 0)
828

829
		   END, --saldoawal.AmountBalanceCompCurr ,
830

831
		   '' AS SLType,
832

833
		   '' AS SLID,
834

835
		   '' AS SLIDDesc,
836

837
		   gl.AccountSubTyp,
838

839
		   gl.AccountClass,
840

841
		   ''
842

843
	FROM dbo.PCMFILOCOAGL AS gl
844

845
		INNER JOIN @TableGL AS tgl
846

847
			ON gl.GlAccount = tgl.GLAccountID
848

849
		LEFT JOIN dbo.PTRFICOMPACCBALANCE AS saldoawal
850

851
			ON gl.GlAccount = saldoawal.GlAccount
852

853
			   AND saldoawal.FiscalPeriod = @FiscalPeriod
854

855
			   AND saldoawal.FiscalYear = @FiscalYear
856

857
			   AND ( saldoawal.BusinessUnit = @BusinessUnit OR @BusinessUnit = '' )
858

859
			   AND ( saldoawal.CompanyID = @CompanyID OR @CompanyID = '' )
860

861
			   AND ( saldoawal.SLType = @SubLedgerType OR @SubLedgerType = '')
862

863
		       AND ( saldoawal.SLID = @SubLedgerID OR @SubLedgerID = '')
864

865
	WHERE ( gl.AccountClass = @AccountGroup OR @AccountGroup = '' )
866

867
		  AND ( gl.GlAccount = @GlAccount OR @GlAccount = '' )
868

869
		  AND ( saldoawal.CostCenter = @CostCenter OR @CostCenter = '' )
870

871

872

873
END
874

875
ELSE
876

877
BEGIN
878

879
	INSERT INTO @TblSaldo
880

881
	SELECT * FROM @TblSaldoAwal
882

883
END
884

885

886

887
INSERT INTO @TblSaldoSum
888

889
SELECT DISTINCT
890

891
       ts.AccSubType,
892

893
       ts.AccClass,
894

895
       ts.GLAccountID, 
896

897
	   ts.subledgertype,
898

899
	   ts.subledgerid,
900

901
	   ts.subledgerdesc,
902

903
       SUM(ts.AmountDebet),
904

905
       SUM(ts.AmountCredit),
906

907
       SUM(ts.AmountBalance),
908

909
       SUM(ts.AmountDebetCompCurr),
910

911
       SUM(ts.AmountCreditCompCurr),
912

913
       SUM(ts.AmountBalanceCompCurr)
914

915
FROM @TblSaldo AS ts
916

917
WHERE ts.RowNumber <> '0'
918

919
GROUP BY ts.AccSubType,
920

921
         ts.AccClass,
922

923
         ts.GLAccountID,
924

925
		 ts.subledgertype,
926

927
		 ts.subledgerid,
928

929
		 ts.subledgerdesc
930

931

932

933
INSERT INTO @TblSaldoSumTanpaSL
934

935
SELECT DISTINCT
936

937
       ts.AccSubType,
938

939
       ts.AccClass,
940

941
       ts.GLAccountID,
942

943
       SUM(ts.AmountDebet),
944

945
       SUM(ts.AmountCredit),
946

947
       SUM(ts.AmountBalance),
948

949
       SUM(ts.AmountDebetCompCurr),
950

951
       SUM(ts.AmountCreditCompCurr),
952

953
       SUM(ts.AmountBalanceCompCurr)
954

955
FROM @TblSaldo AS ts
956

957
GROUP BY ts.AccSubType,
958

959
         ts.AccClass,
960

961
         ts.GLAccountID
962

963

964

965
INSERT INTO @TblSaldo
966

967
SELECT DISTINCT
968

969
       '3999999999',
970

971
       saldoawal.GLAccountID,
972

973
       saldoawal.GLAccounntDesc,
974

975
       '',
976

977
       'Saldo Akhir',
978

979
       @FiscalYear,
980

981
       @FiscalPeriodTo,
982

983
       '',
984

985
       saldoawal.Currency,
986

987
       saldosum.AmountDebet,
988

989
       saldosum.AmountCredit,
990

991
       --saldoawal.AmountBalance AS saldoawal,
992

993
       CASE
994

995
           WHEN saldoawal.AccSubType = 'AS' THEN ISNULL(saldoawal.AmountBalance, 0) + ISNULL(saldosum.AmountDebet, 0) - ISNULL(saldosum.AmountCredit, 0)
996

997
           WHEN saldoawal.AccSubType = 'LI' THEN 
998

999
				CASE WHEN saldoawal.AccClass = 'EQX' THEN (ISNULL(saldoawal.AmountBalance, 0) + ISNULL(saldosum.AmountCredit, 0) + ISNULL(saldosum.AmountDebet, 0)) 
1000

1001
				ELSE (ISNULL(saldoawal.AmountBalance, 0) + ISNULL(saldosum.AmountCredit, 0) - ISNULL(saldosum.AmountDebet, 0)) * -1 END
1002

1003
           WHEN saldoawal.AccSubType = 'IN' THEN (ISNULL(saldoawal.AmountBalance, 0) + ISNULL(saldosum.AmountCredit, 0) - ISNULL(saldosum.AmountDebet, 0)) * -1
1004

1005
           WHEN saldoawal.AccSubType = 'EX' THEN ISNULL(saldoawal.AmountBalance, 0) + ISNULL(saldosum.AmountDebet, 0) - ISNULL(saldosum.AmountCredit, 0)
1006

1007
       END AmountBalanceNew,
1008

1009
       saldoawal.CompCurr,
1010

1011
       saldosum.AmountDebetCompCurr,
1012

1013
       saldosum.AmountCreditCompCurr,
1014

1015
       --saldoawal.AmountBalanceCompCurr AS saldoawalcompcurr ,
1016

1017
       CASE
1018

1019
           WHEN saldoawal.AccSubType = 'AS' THEN ISNULL(saldoawal.AmountBalanceCompCurr, 0) + ISNULL(saldosum.AmountDebetCompCurr, 0) - ISNULL(saldosum.AmountCreditCompCurr, 0)
1020

1021
           WHEN saldoawal.AccSubType = 'LI' THEN 
1022

1023
				CASE WHEN saldoawal.AccClass = 'EQX' THEN (ISNULL(saldoawal.AmountBalanceCompCurr, 0) + ISNULL(saldosum.AmountCreditCompCurr, 0) + ISNULL(saldosum.AmountDebetCompCurr, 0))
1024

1025
                ELSE (ISNULL(saldoawal.AmountBalanceCompCurr, 0) + ISNULL(saldosum.AmountCreditCompCurr, 0) - ISNULL(saldosum.AmountDebetCompCurr, 0) ) * -1
1026

1027
                END
1028

1029
           WHEN saldoawal.AccSubType = 'IN' THEN (ISNULL(saldoawal.AmountBalanceCompCurr, 0) + ISNULL(saldosum.AmountCreditCompCurr, 0) - ISNULL(saldosum.AmountDebetCompCurr, 0) ) * -1
1030

1031
           WHEN saldoawal.AccSubType = 'EX' THEN ISNULL(saldoawal.AmountBalanceCompCurr, 0) + ISNULL(saldosum.AmountDebetCompCurr, 0) - ISNULL(saldosum.AmountCreditCompCurr, 0)
1032

1033
       END AmountBalanceCompCurrNew,
1034

1035
       saldoawal.subledgertype,
1036

1037
       saldoawal.subledgerid,
1038

1039
       saldoawal.subledgerdesc,
1040

1041
       saldoawal.AccSubType,
1042

1043
       saldoawal.AccClass,
1044

1045
	   saldoawal.ItemDesc
1046

1047
FROM @TblSaldo AS saldoawal
1048

1049
LEFT JOIN @TblSaldoSum AS saldosum
1050

1051
    ON saldosum.AccSubType = saldoawal.AccSubType
1052

1053
    AND saldosum.AccClass = saldoawal.AccClass
1054

1055
WHERE saldoawal.DocDesc = 'Saldo Awal'
1056

1057
      AND saldoawal.GLAccountID = saldosum.GLAccountID
1058

1059
	  AND saldoawal.subledgerid = saldosum.SLID
1060

1061
	  AND RowNumber <> '0'
1062

1063

1064

1065
INSERT INTO @TblSaldo
1066

1067
SELECT DISTINCT
1068

1069
       '9999999999',
1070

1071
       saldoawal.GLAccountID,
1072

1073
       saldoawal.GLAccounntDesc,
1074

1075
       '',
1076

1077
       'Saldo Akhir',
1078

1079
       @FiscalYear,
1080

1081
       @FiscalPeriodTo,
1082

1083
       '',
1084

1085
       saldoawal.Currency,
1086

1087
       saldosum.AmountDebet,
1088

1089
       saldosum.AmountCredit,
1090

1091
       --saldoawal.AmountBalance AS saldoawal,
1092

1093
       CASE
1094

1095
           WHEN saldoawal.AccSubType = 'AS' THEN ISNULL(saldoawal.AmountBalance, 0) + ISNULL(saldosum.AmountDebet, 0) - ISNULL(saldosum.AmountCredit, 0)
1096

1097
           WHEN saldoawal.AccSubType = 'LI' THEN 
1098

1099
				CASE WHEN saldoawal.AccClass = 'EQX' THEN (ISNULL(saldoawal.AmountBalance, 0) + ISNULL(saldosum.AmountCredit, 0) + ISNULL(saldosum.AmountDebet, 0)) 
1100

1101
				ELSE (ISNULL(saldoawal.AmountBalance, 0) + ISNULL(saldosum.AmountCredit, 0) - ISNULL(saldosum.AmountDebet, 0)) * -1 END
1102

1103
           WHEN saldoawal.AccSubType = 'IN' THEN (ISNULL(saldoawal.AmountBalance, 0) + ISNULL(saldosum.AmountCredit, 0) - ISNULL(saldosum.AmountDebet, 0)) * -1
1104

1105
           WHEN saldoawal.AccSubType = 'EX' THEN ISNULL(saldoawal.AmountBalance, 0) + ISNULL(saldosum.AmountDebet, 0) - ISNULL(saldosum.AmountCredit, 0)
1106

1107
       END AmountBalanceNew,
1108

1109
       saldoawal.CompCurr,
1110

1111
       saldosum.AmountDebetCompCurr,
1112

1113
       saldosum.AmountCreditCompCurr,
1114

1115
       --saldoawal.AmountBalanceCompCurr AS saldoawalcompcurr ,
1116

1117
       CASE
1118

1119
           WHEN saldoawal.AccSubType = 'AS' THEN ISNULL(saldoawal.AmountBalanceCompCurr, 0) + ISNULL(saldosum.AmountDebetCompCurr, 0) - ISNULL(saldosum.AmountCreditCompCurr, 0)
1120

1121
           WHEN saldoawal.AccSubType = 'LI' THEN 
1122

1123
				CASE WHEN saldoawal.AccClass = 'EQX' THEN (ISNULL(saldoawal.AmountBalanceCompCurr, 0) + ISNULL(saldosum.AmountCreditCompCurr, 0) + ISNULL(saldosum.AmountDebetCompCurr, 0))
1124

1125
                ELSE (ISNULL(saldoawal.AmountBalanceCompCurr, 0) + ISNULL(saldosum.AmountCreditCompCurr, 0) - ISNULL(saldosum.AmountDebetCompCurr, 0) ) * -1
1126

1127
                END
1128

1129
           WHEN saldoawal.AccSubType = 'IN' THEN (ISNULL(saldoawal.AmountBalanceCompCurr, 0) + ISNULL(saldosum.AmountCreditCompCurr, 0) - ISNULL(saldosum.AmountDebetCompCurr, 0) ) * -1
1130

1131
           WHEN saldoawal.AccSubType = 'EX' THEN ISNULL(saldoawal.AmountBalanceCompCurr, 0) + ISNULL(saldosum.AmountDebetCompCurr, 0) - ISNULL(saldosum.AmountCreditCompCurr, 0)
1132

1133
       END AmountBalanceCompCurrNew,
1134

1135
       '999' AS subledgertype,
1136

1137
       '999' AS subledgerid,
1138

1139
       '999' AS subledgerdesc,
1140

1141
       saldoawal.AccSubType,
1142

1143
       saldoawal.AccClass,
1144

1145
	   saldoawal.ItemDesc
1146

1147
FROM @TblSaldo AS saldoawal
1148

1149
LEFT JOIN @TblSaldoSumTanpaSL AS saldosum
1150

1151
    ON saldosum.AccSubType = saldoawal.AccSubType
1152

1153
    AND saldosum.AccClass = saldoawal.AccClass
1154

1155
WHERE saldoawal.DocDesc = 'Saldo Awal'
1156

1157
      AND saldoawal.GLAccountID = saldosum.GLAccountID
1158

1159
	  AND RowNumber NOT IN ('1','1999999999')
1160

1161

1162

1163

1164

1165
SELECT DISTINCT
1166

1167
       a.RowNumber,
1168

1169
	   a.subledgertype,
1170

1171
	   a.subledgerid,
1172

1173
       a.subledgerdesc,
1174

1175
       a.GLAccountID,
1176

1177
       a.GLAccounntDesc,
1178

1179
       a.DocNo,
1180

1181
       a.DocDesc,
1182

1183
       a.FiscalYear,
1184

1185
       a.FiscalPeriod,
1186

1187
       a.PostingDate,
1188

1189
       a.Currency,
1190

1191
       a.AmountDebet,
1192

1193
       a.AmountCredit,
1194

1195
       a.AmountBalance,
1196

1197
       a.CompCurr,
1198

1199
       a.AmountDebetCompCurr,
1200

1201
       a.AmountCreditCompCurr,
1202

1203
	   a.AmountBalanceCompCurr,
1204

1205
       a.AccSubType,
1206

1207
       a.AccClass,
1208

1209
	   a.ItemDesc
1210

1211
FROM @TblSaldo a
1212

1213
ORDER BY a.GLAccountID
1214

1215
		,a.subledgerid
1216

1217
		,a.RowNumber
1218

1219

1220

1221
         
(6-6/6)