Project

General

Profile

Feature #4127 » PRPTTVJURNALTRAVEL.sql

Tri Rizqiaty, 02/02/2026 04:28 PM

 
1
ALTER PROCEDURE PRPTTVJURNALTRAVEL
2
(
3
	@CompanyID VARCHAR(4)
4
	,@CostCenter VARCHAR(8)
5
	,@EmployeeID VARCHAR(8) 
6
	,@EmployeeArea VARCHAR(8)
7
	,@RunPeriod VARCHAR(6)
8
)
9
AS
10

    
11
--DECLARE @CompanyID VARCHAR(4) = '1000'
12
--DECLARE @CostCenter VARCHAR(8) = ''
13
--DECLARE @EmployeeID VARCHAR(8) = '10000150'
14
--DECLARE @EmployeeArea VARCHAR(8) = ''
15
--DECLARE @RunPeriod VARCHAR(6) = '202601'
16

    
17
DECLARE @StartDate VARCHAR(8) = @RunPeriod + '01'
18
DECLARE @EndDateDt DATETIME = DATEADD(dd, -1,DATEADD(mm, 1,CONVERT(DATETIME, @StartDate)))
19
DECLARE @EndDate VARCHAR(8) = @RunPeriod + CONVERT(VARCHAR(2), DATEPART(dd,@EndDateDt))
20

    
21
DECLARE @TblEmp TABLE
22
(
23
	EmployeeID VARCHAR(20)
24
	,HeaderSequence DECIMAL(22,0)
25
	,CostType VARCHAR(20)
26
	,CostDesc VARCHAR(250)
27
	,Rate  VARCHAR(250)
28
	,AmountPlan DECIMAL(22,2)
29
	,AmountSettlement DECIMAL(22,2)
30
	,AmountApproval DECIMAL(22,2)
31
	,RateConversion DECIMAL(22,2)
32
	,AmountApprovalConversion DECIMAL(22,2)
33
	,Currency VARCHAR(20)
34
	,CostCenter VARCHAR(20)
35
	,CCDesc VARCHAR(250)
36
	,CompID VARCHAR(20)
37
	,CompDesc VARCHAR(250)
38
)
39

    
40
INSERT INTO @TblEmp
41
SELECT DISTINCT pa65.EmployeeID
42
				,pa65.HeaderSequence
43
				,pa65.CostType
44
				,pa65.CostDescription
45
				,pa65.Rate
46
				,pa65.AmountPlan
47
				,pa65.AmountSettlement
48
				,pa65.AmountApproval
49
				,pa65.RateConversion
50
				,pa65.AmountApprovalConversion
51
				,pa65.Currency
52
				,pa65.CostCenter
53
				,cc.ObjectDescription AS CCDesc
54
				,pa2.CompanyID
55
				,comp.CompanyDescription
56
FROM PHRPA0062 AS pa62
57
LEFT JOIN PHRPA0065 AS pa65
58
	ON pa65.EmployeeID = pa62.EmployeeID
59
LEFT JOIN PHRPA0002 AS pa2
60
	ON pa62.EmployeeID = pa2.EmployeeID
61
	AND pa2.StartDate <= @EndDate AND pa2.EndDate >= @EndDate
62
LEFT JOIN dbo.PCMEPCOMPID AS comp
63
	ON pa2.CompanyID = comp.CompanyID
64
LEFT JOIN dbo.PHROM0001 AS cc
65
	ON cc.ObjectID = pa2.CostCenter
66
	AND cc.ObjectClass = 'CC'
67
	AND cc.StartDate <= @EndDate AND cc.EndDate >= @EndDate
68
WHERE (pa62.EmployeeID = @EmployeeID OR @EmployeeID = '')
69
	AND (pa62.TravDocDate >= @StartDate AND pa62.TravDocDate <= @EndDate)
70
	AND (pa2.CompanyID = @CompanyID OR @CompanyID = '')
71
	AND (pa2.CostCenter = @CostCenter OR @CostCenter = '')
72
	AND (pa2.EmployeeArea = @EmployeeArea OR @EmployeeArea = '')
73
	AND (pa62.HeaderSequence = pa65.HeaderSequence)
74

    
75
DECLARE @TblGLAcc TABLE
76
(
77
	CostType VARCHAR(20)
78
	,CostTypeDesc VARCHAR(250)
79
	,DebitAcc VARCHAR(20)
80
	,CreditAcc VARCHAR(20)
81
	,CE VARCHAR(20)
82
	,GLAccount VARCHAR(20)
83
	,CEDesc VARCHAR(250)
84
)
85

    
86
INSERT INTO @TblGLAcc
87
SELECT DISTINCT costtype.CostType
88
				,costtype.CostTypeDesc
89
				,costtype.DebitAcc
90
				,'' AS CreditAcc
91
				,CE.ObjectID AS CE
92
				,CE.GLAccount
93
				,CE_Desc.ObjectDescription AS CEDesc
94
FROM PHRTVCOSTYP AS costtype
95
LEFT JOIN dbo.PHROM0017 AS CE 
96
	ON CE.StartDate <= @EndDate
97
    AND CE.EndDate >= @EndDate
98
    AND CE.ObjectID = costtype.DebitAcc
99
LEFT JOIN dbo.PHROM0001 AS CE_Desc 
100
	ON CE_Desc.ObjectDescription = CE.ObjectID
101
	AND CE_Desc.ObjectClass = 'CE'
102
	AND CE_Desc.StartDate <= @EndDate
103
    AND CE_Desc.EndDate >= @EndDate
104
WHERE costtype.DebitAcc <> ''
105

    
106
INSERT INTO @TblGLAcc
107
SELECT DISTINCT costtype.CostType
108
				,costtype.CostTypeDesc
109
				,'' AS DebitAcc
110
				,costtype.CreditAcc AS CreditAcc
111
				,CE.ObjectID AS CE
112
				,CE.GLAccount
113
				,CE_Desc.ObjectDescription AS CEDesc
114
FROM PHRTVCOSTYP AS costtype
115
LEFT JOIN dbo.PHROM0017 AS CE 
116
	ON CE.StartDate <= @EndDate
117
    AND CE.EndDate >= @EndDate
118
    AND CE.ObjectID = costtype.DebitAcc
119
LEFT JOIN dbo.PHROM0001 AS CE_Desc 
120
	ON CE_Desc.ObjectDescription = CE.ObjectID
121
	AND CE_Desc.ObjectClass = 'CE'
122
	AND CE_Desc.StartDate <= @EndDate
123
    AND CE_Desc.EndDate >= @EndDate
124
WHERE costtype.CreditAcc <> ''
125

    
126
DECLARE @TblAmount TABLE
127
(
128
	CostType VARCHAR(20)
129
	,CostTypeDesc VARCHAR(250)
130
	,GLAccount VARCHAR(20)
131
	,DebitAmount DECIMAL(22,2)
132
	,CreditAmount DECIMAL(22,2)
133
	,CostCenter VARCHAR(20)
134
	,CCDesc VARCHAR(250)
135
	,CompID VARCHAR(20)
136
	,CompDesc VARCHAR(250)
137
)
138

    
139
INSERT INTO @TblAmount
140
SELECT DISTINCT tblgl.CostType
141
				,tblgl.CostTypeDesc
142
				,tblgl.GLAccount
143
				,tblemp.AmountApproval AS DebitAmount
144
				,0 AS CreditAmount
145
				,tblemp.CostCenter
146
				,tblemp.CCDesc
147
				,tblemp.CompID
148
				,tblemp.CompDesc
149
FROM @TblGLAcc AS tblgl
150
LEFT JOIN @TblEmp AS tblemp
151
	ON tblemp.CostType = tblgl.CostType
152
WHERE tblgl.DebitAcc <> '' AND tblemp.AmountApproval > 0
153

    
154
INSERT INTO @TblAmount
155
SELECT DISTINCT tblgl.CostType
156
				,tblgl.CostTypeDesc
157
				,tblgl.GLAccount
158
				,0 AS DebitAmount
159
				,tblemp.AmountApproval AS CreditAmount
160
				,tblemp.CostCenter
161
				,tblemp.CCDesc
162
				,tblemp.CompID
163
				,tblemp.CompDesc
164
FROM @TblGLAcc AS tblgl
165
LEFT JOIN @TblEmp AS tblemp
166
	ON tblemp.CostType = tblgl.CostType
167
WHERE tblgl.CreditAcc <> '' AND tblemp.AmountApproval > 0
168

    
169
SELECT DISTINCT * 
170
				,dbo.fn_formatdatetime(@StartDate,'mmmm yyyy') AS PeriodDesc
171
				,dbo.fn_formatdatetime(@StartDate,'dd/mmmm/yyyy') AS StartDateDesc
172
				,dbo.fn_formatdatetime(@EndDate,'dd/mmmm/yyyy') AS EndDateDesc
173
FROM @TblAmount
(4-4/6)