Project

General

Profile

2107 FILE 7.txt

Luc Tran Van, 07/21/2020 10:58 AM

 
1
ALTER PROCEDURE [dbo].[TR_REQUEST_DOC_SendApp]
2
@p_REQ_ID VARCHAR(20),
3
@p_PROCESS_ID VARCHAR(20),
4
@p_TLNAME VARCHAR(20),
5
@p_MAKER_ID VARCHAR(20)
6
AS
7
BEGIN TRANSACTION
8
	IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  (REQ_DT IS NULL OR REQ_DT='')) )
9
	BEGIN
10
			ROLLBACK TRANSACTION
11
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Ngày yêu cầu bắt buộc nhập' ErrorDesc
12
			RETURN '-1'
13
	END
14
	IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  (REQ_REASON IS NULL OR REQ_REASON='')) )
15
	BEGIN
16
			ROLLBACK TRANSACTION
17
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Mục đích yêu cầu bắt buộc nhập' ErrorDesc
18
			RETURN '-1'
19
	END
20
	IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  (PL_REQ_ID IS NULL OR PL_REQ_ID='')) )
21
	BEGIN
22
			ROLLBACK TRANSACTION
23
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Tờ trình chủ trương bắt buộc nhập' ErrorDesc
24
			RETURN '-1'
25
	END
26
	IF(NOT EXISTS(SELECT REQ_DOC_ID FROM dbo.TR_REQUEST_DOC_DT WHERE  REQ_DOC_ID=@p_REQ_ID ) )
27
	BEGIN
28
			ROLLBACK TRANSACTION
29
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Chi tiết hàng hóa bắt buộc nhập' ErrorDesc
30
			RETURN '-1'
31
	END
32

    
33
	--- XOA DATA CU
34
	DELETE PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID
35
	-----
36
	DECLARE @NS_TO_TRINH DECIMAL(18,0), @NS_PYCMS_USE DECIMAL(18,0), @NS_LUY_KE DECIMAL(18,0),@PL_REQ_CODE VARCHAR(50)
37
	SET @PL_REQ_CODE =(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID))
38
	SET @NS_TO_TRINH =(SELECT TOTAL_AMT FROM PL_REQUEST_DOC WHERE REQ_ID =(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID))
39
	SET @NS_PYCMS_USE =(SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_ID)
40
	SET @NS_LUY_KE =ISNULL((SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID IN (SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE PL_REQ_ID=(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID))),0)
41
	DECLARE @p_PL_REQ_ID VARCHAR(15),@p_REQ_DATE DATETIME
42
	SELECT @p_PL_REQ_ID=PL_REQ_ID,@p_REQ_DATE=REQ_DT  FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
43
	IF( EXISTS(
44
			SELECT Temp.GD_ID FROM (SELECT GD_ID,SUM(TOTAL_AMT) AS TOTAL_AMT_ETM FROM dbo.TR_REQUEST_DOC_DT   WHERE REQ_DOC_ID=@p_REQ_ID
45
			GROUP BY GD_ID) Temp WHERE    TOTAL_AMT_ETM > 
46
			((SELECT SUM(TEMP2.TOTAL_AMT) AS TOTAL_AMT_APP FROM
47
			(SELECT GOODS_ID,TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT
48
			WHERE REQ_ID=@p_PL_REQ_ID
49
			UNION 
50
			SELECT GOODS_ID,TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT
51
			WHERE REQ_ID=(SELECT REQ_PARENT_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_PL_REQ_ID) ) TEMP2 WHERE TEMP2.GOODS_ID=Temp.GD_ID
52
			GROUP BY TEMP2.GOODS_ID) - (SELECT ISNULL(SUM(TOTAL_AMT),0) AS TOTAL_AMT_EXE FROM dbo.TR_REQUEST_DOC_DT WHERE GD_ID=Temp.GD_ID AND REQ_DOC_ID IN (SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE PL_REQ_ID=@p_PL_REQ_ID)
53
			GROUP BY GD_ID))))
54
		BEGIN
55
			ROLLBACK TRANSACTION
56
			SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID,
57
			N'Thông tin liên quan tới phiếu yêu cầu mua sắm có sử dụng tờ trình số: '+ @PL_REQ_CODE
58
			+CHAR(10)+ N'Tổng số tiền lũy kế sử dụng ngân sách tờ trình: '+FORMAT(@NS_LUY_KE ,'#,#', 'vi-VN')
59
			+CHAR(10)+N'Tổng số tiền ngân sách còn lại của tờ trình: '+ FORMAT(@NS_TO_TRINH -@NS_LUY_KE ,'#,#', 'vi-VN')
60
			+CHAR(10)+ N'Số tiền sử dụng ngân sách cho phiếu yêu cầu mua sắm hiện tại vượt '+FORMAT(@NS_LUY_KE+@NS_PYCMS_USE -@NS_TO_TRINH ,'#,#', 'vi-VN')+N' so với tổng số tiền ngân sách còn lại của tờ trình.'
61
			+CHAR(10) +N'Vui lòng tra cứu tổng số tiền các phiếu yêu cầu mua sắm để biết thêm thông tin chi tiêt!' ErrorDesc 
62
			RETURN '0'
63
		END
64
	IF(EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND REQ_DT <= @p_REQ_DATE))
65
		BEGIN
66
			ROLLBACK TRANSACTION
67
			SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa theo tờ trình: Ngày cần không được phép để trống và phải lớn hơn ngày yêu cầu mua sắm' ErrorDesc 
68
			RETURN '0'
69
		END
70
	DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20) ,@DEP_CREATE VARCHAR(20),@BRANCH_TYPE VARCHAR(10),
71
	@BRANCH_CREATE_TYPE VARCHAR(10)
72

    
73
	SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
74

    
75
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
76
	SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
77
	-- KIEM TRA XEM CO CAP PHE DUYET HAY KHONG
78
	IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <>''))
79
	BEGIN
80
		UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='SIGN' WHERE REQ_ID=@p_REQ_ID
81
		INSERT INTO dbo.PL_REQUEST_PROCESS
82
		(
83
		    REQ_ID,
84
		    PROCESS_ID,
85
		    STATUS,
86
		    ROLE_USER,
87
		    BRANCH_ID,
88
			DEP_ID,
89
		    CHECKER_ID,
90
		    APPROVE_DT,
91
		    PARENT_PROCESS_ID,
92
		    IS_LEAF,
93
		    COST_ID,
94
		    DVDM_ID,
95
		    NOTES,
96
		    IS_HAS_CHILD
97
		)
98
		VALUES
99
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
100
		    'SIGN',        -- PROCESS_ID - varchar(10)
101
		    'C',        -- STATUS - varchar(5)
102
		    (SELECT RoleName FROM TL_USER WHERE TLNANME =(SELECT SIGN_USER FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)),  -- ROLE_USER - varchar(50)
103
		    @BRANCH_CREATE,  
104
			@DEP_CREATE,      -- BRANCH_ID - varchar(15)
105
		    '',        -- CHECKER_ID - varchar(15)
106
		    NULL,      -- APPROVE_DT - datetime
107
		    '',        -- PARENT_PROCESS_ID - varchar(10)
108
		    'N',        -- IS_LEAF - varchar(1)
109
		    '',        -- COST_ID - varchar(15)
110
		    '',        -- DVDM_ID - varchar(15)
111
		    N'Chờ cấp phê duyệt trung gian xác nhận phiếu',       -- NOTES - nvarchar(500)
112
		    NULL       -- IS_HAS_CHILD - bit
113
		 )
114
	END
115
	ELSE
116
	BEGIN
117
	UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='APPNEW' WHERE REQ_ID=@p_REQ_ID
118
	INSERT INTO dbo.PL_REQUEST_PROCESS
119
		(
120
		    REQ_ID,
121
		    PROCESS_ID,
122
		    STATUS,
123
		    ROLE_USER,
124
		    BRANCH_ID,
125
			DEP_ID,
126
		    CHECKER_ID,
127
		    APPROVE_DT,
128
		    PARENT_PROCESS_ID,
129
		    IS_LEAF,
130
		    COST_ID,
131
		    DVDM_ID,
132
		    NOTES,
133
		    IS_HAS_CHILD
134
		)
135
		VALUES
136
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
137
		    'APPNEW',        -- PROCESS_ID - varchar(10)
138
		    'C',        -- STATUS - varchar(5)
139
		    'GDDV',        -- ROLE_USER - varchar(50)
140
		    @BRANCH_CREATE,  
141
			@DEP_CREATE,      -- BRANCH_ID - varchar(15)
142
		    '',        -- CHECKER_ID - varchar(15)
143
		    NULL,      -- APPROVE_DT - datetime
144
		    '',        -- PARENT_PROCESS_ID - varchar(10)
145
		    'N',        -- IS_LEAF - varchar(1)
146
		    '',        -- COST_ID - varchar(15)
147
		    '',        -- DVDM_ID - varchar(15)
148
		    N'Chờ trưởng đơn vị phê duyệt',       -- NOTES - nvarchar(500)
149
		    NULL       -- IS_HAS_CHILD - bit
150
		 )
151
	END	
152
	INSERT INTO dbo.PL_PROCESS
153
					(
154
					    REQ_ID,
155
					    PROCESS_ID,
156
					    CHECKER_ID,
157
					    APPROVE_DT,
158
					    PROCESS_DESC,
159
					    NOTES
160
					)
161
					VALUES
162
					(   @p_REQ_ID,        -- REQ_ID - varchar(15)
163
					    --@p_PROCESS_ID,        -- PROCESS_ID - varchar(10)
164
						'SEND',
165
					    @p_TLNAME,        -- CHECKER_ID - varchar(15)
166
					    GETDATE(), -- APPROVE_DT - datetime
167
					    N'Nhân viên tạo phiếu và gửi phê duyệt thành công' ,       -- PROCESS_DESC - nvarchar(1000)
168
					    N'Nhân viên gửi phê duyệt '        -- NOTES - nvarchar(1000)
169
					 )
170
	
171
		IF @@Error <> 0 GOTO ABORT
172
COMMIT TRANSACTION
173
SELECT '0' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc
174
RETURN '0'
175
ABORT:
176
BEGIN
177
		ROLLBACK TRANSACTION
178
		SELECT '-1' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc
179
		RETURN '-1'
180
End
181

    
182

    
183
¿
184
ALTER PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Search]
185
@p_REQ_PAY_ID	varchar(15)= NULL,
186
@p_REQ_PAY_CODE	varchar(50)	= NULL,
187
@p_REQ_DT VARCHAR(20)= NULL,
188
@p_BRANCH_ID	varchar(15)	= NULL,
189
@p_DEP_ID	varchar(15)	= NULL,
190
@p_REQ_REASON	nvarchar(MAX)	= NULL,
191
@p_REQ_TYPE	varchar(15)	= NULL,
192
@P_REQ_ENTRIES nvarchar(MAX)	= NULL,
193
@p_REQ_DESCRIPTION	nvarchar(MAX)	= NULL,
194
@p_REF_ID	varchar(15)	= NULL,
195
@p_RECEIVER_PO	nvarchar(250)	= NULL,
196
@p_RECEIVER_DEBIT	nvarchar(250)	= NULL,
197
@p_REQ_PAY_TYPE	varchar(15)	= NULL,
198
@p_REQ_TYPE_CURRENCY	nvarchar(50)	= NULL,
199
@p_REQ_AMT	decimal(18, 0)	= NULL,
200
@p_REQ_TEMP_AMT	decimal(18, 0)	= NULL,
201
@p_MAKER_ID	varchar(15)	= NULL,
202
@p_CREATE_DT	varchar(25)	= NULL,
203
@p_EDITOR_ID	varchar(15)	= NULL,
204
@p_AUTH_STATUS	varchar(1)	= NULL,
205
@p_CHECKER_ID	varchar(15)	= NULL,
206
@p_APPROVE_DT	varchar(25)	= NULL,
207
@p_CREATE_DT_KT	varchar(25)	= NULL,
208
@p_MAKER_ID_KT	varchar(15)	= NULL,
209
@p_AUTH_STATUS_KT	varchar(1)	= NULL,
210
@p_CHECKER_ID_KT	varchar(1)	= NULL,
211
@p_APPROVE_DT_KT  varchar(25)= null,
212
@p_CORE_NOTE	nvarchar(500)	= NULL,
213
@p_BRANCH_CREATE	varchar(15)	= NULL,
214
@p_NOTES	varchar(15)	= NULL,
215
@p_RECORD_STATUS	varchar(1)	= NULL,
216
@p_TRANSFER_MAKER	nvarchar(50)	= NULL,
217
@p_TRANSFER_DT	varchar(25)	= NULL,
218
@p_TRASFER_USER_RECIVE	varchar(15)	= NULL,
219
@p_PROCESS	varchar(15)	= NULL,
220
@p_PAY_PHASE VARCHAR(15)= NULL,
221
@p_XMP_TEMP XML = NULL,
222
@p_TOP INT = 10,
223
@p_LEVEL varchar(10) = NULL,
224
@p_FRMDATE VARCHAR(20)= NULL,
225
@p_TODATE VARCHAR(20) = NULL,
226
@p_BRANCH_LOGIN VARCHAR(15) = NULL,
227
@p_IS_UPDATE_KT VARCHAR(15) = NULL,
228
@p_IS_TRANSFER VARCHAR(15)= NULL,
229
@p_DVDM_ID VARCHAR(15)= NULL,
230
@p_USER_LOGIN VARCHAR(15) = NULL,
231
@p_RATE DECIMAL(18,0) =0,
232
@p_FUNCTION VARCHAR(15) = NULL,
233
@p_TYPE_SEARCH VARCHAR(15) = NULL
234
AS
235
SET @p_TOP = NULL
236
DECLARE @TB_TYPE TABLE (BRANCH_TYPE VARCHAR(15))
237
IF((SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID= @p_BRANCH_LOGIN)='HS')
238
BEGIN
239
	INSERT INTO @TB_TYPE VALUES('HS')
240
END
241
ELSE
242
BEGIN
243
	INSERT INTO @TB_TYPE VALUES('PGD')
244
	INSERT INTO @TB_TYPE VALUES('CN')
245
END
246
declare @tmp table(BRANCH_ID varchar(15))
247
insert into @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
248
declare @tmp_Login table(BRANCH_ID varchar(15))
249
insert into @tmp_Login  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
250
DECLARE @ROLE_ID VARCHAR(20) , @DEP_ID_LG VARCHAR(15) = NULL, @COST_LG VARCHAR(15), @DVDM_ID VARCHAR(15)
251
DECLARE @BRANCH_TYPE VARCHAR(15)
252
SET @BRANCH_TYPE =(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=(SELECT BRANCH_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID))
253
SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
254
SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
255
DECLARE @TMP_DEP TABLE(DEP_ID VARCHAR(15))
256
SET @COST_LG =(SELECT TOP 1 COST_ID FROM PL_COSTCENTER_DT WHERE DEP_ID =@DEP_ID_LG)
257
SET @DVDM_ID =(SELECT TOP 1 DVDM_ID FROM PL_COSTCENTER WHERE COST_ID =@COST_LG)
258
INSERT INTO @TMP_DEP SELECT B.DEP_ID FROM PL_COSTCENTER_DT B  WHERE COST_ID =@COST_LG
259
DECLARE @BRANCH_TYPE_LG VARCHAR(15)
260
SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
261
IF(@p_TOP=NULL OR @p_TOP='' OR @p_TOP=0)BEGIN
262
		SELECT A.*,
263
		PR.PROCESS_DESC AS AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME,
264
		TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT,
265
		BR.BRANCH_NAME BRANCH_NAME_REQ, BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
266
		--Luanlt--2019/10/15-Sửa AL,AL1
267
		BR1.BRANCH_CODE BRANCH_CODE_CRE,  AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME,
268
		A.REQ_AMT AS TOTAL_AMT_TEMP,CASE WHEN H.SOTIEN_TT IS NULL THEN ISNULL(A.PAY_AMT,0) ELSE  ISNULL(H.SOTIEN_TT,0) END AS TOTAL_AMT_PAY_HIS,
269
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,TL6.TLFullName AS REC_DEBIT_NAME, TL6.TLNANME AS REC_DEBIT_CODE,
270
		TL7.TLFullName AS EMP_NAME, TL7.TLNANME AS EMP_CODE,
271
		PO.PO_CODE, PO.PO_NAME,SUP.SUP_NAME,SUP.TAX_NO AS SUP_TAX_NO,CUS.CUSTOMER_CODE AS CUST_CODE, CUS.CUSTOMER_NAME AS CUST_NAME, PM.PAY_PHASE AS KY_TAM_UNG,
272
		DV.DVDM_CODE, DV.DVDM_NAME, PC.ROLE_USER AS ROLE_CONF, PR.PROCESS_DESC AS CONF_STATUS, PC1.NOTES AS NEXT_STEP, PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,
273
		PC3.TLNAME AS EXEC_USER, TL8.TLFullName AS RECIVER_MONEY_FULLNAME, BR1.BRANCH_TYPE AS BRANCH_TYPE_CR, BR.BRANCH_TYPE, @p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE
274
        FROM TR_REQ_ADVANCE_PAYMENT A
275
             LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
276
             LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
277
             LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
278
             LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
279
             LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
280
             LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
281
             LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
282
			 LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
283
             LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
284
			 --Luanlt--2019/10/15-Sửa AL,AL1
285
			 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE'--Loại thanh toán (Nội bộ/Thanh toán/Nợ)
286
			 LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE'--Hình thức thanh toán( Tiền mặt/Chuyển khoản)			 
287
			 LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
288
			 LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
289
			 LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D'
290
			 LEFT JOIN
291
			 (
292
			 SELECT PAY_ADV_ID,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) AS SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
293
			 ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID
294
			 LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I'
295
			 LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
296
			 LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P'
297
			 LEFT JOIN LS_CUSTOMER CUS ON A.REF_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D'
298
			 LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P'
299
			 LEFT JOIN CM_DVDM DV ON A.DVDM_ID = DV.DVDM_ID
300
			 LEFT JOIN PL_PROCESS PR ON A.PROCESS = PR.PROCESS_ID AND A.REQ_PAY_ID = PR.REQ_ID
301
			 LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND PC.ROLE_USER = @ROLE_ID AND PC.STATUS='C'
302
			 LEFT JOIN PL_REQUEST_PROCESS PC1 ON PC1.REQ_ID= A.REQ_PAY_ID AND PC1.STATUS='C'
303
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'
304
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
305
			 LEFT JOIN TL_USER TL8 ON A.RECIVER_MONEY = TL8.TLNANME
306
			 LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
307
        WHERE 1=1 
308
			 AND (A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID IS NULL OR @p_REQ_PAY_ID ='')
309
			  AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)
310
			  AND(A.AUTH_STATUS=@p_AUTH_STATUS OR @p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL)
311
			  AND((A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE_KT='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
312
              OR((A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N'))OR @p_IS_UPDATE_KT IS NULL OR @p_IS_UPDATE_KT='')
313
			  AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)
314
			  --Luanlt-2019/10/14-Thêm Filter  REQ_TYPE,FROMDATE TODATE REF_ID
315
			  AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
316
			  AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='')
317
              AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='')
318
			  --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME  BRANCH_ID DEP_ID KT_AUTH
319
			  AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)
320
			  AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'')
321
			  AND(A.BRANCH_CREATE = @p_BRANCH_CREATE or @p_BRANCH_CREATE='' OR @p_BRANCH_CREATE IS NULL)
322
			  AND(A.DEP_ID = @p_DEP_ID  or @p_DEP_ID='' OR @p_DEP_ID IS NULL)
323
			  AND(A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' OR @p_AUTH_STATUS_KT IS NULL)
324
			  AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL)
325
			  AND((A.TRANSFER_MAKER IS NOT NULL AND @p_IS_TRANSFER='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
326
              OR((A.TRANSFER_MAKER IS NULL AND @p_IS_TRANSFER='N'))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='')
327
			  AND((@p_LEVEL='ALL' AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp))
328
              OR((@p_LEVEL='UNIT' AND A.BRANCH_ID=@p_BRANCH_ID)OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL)))
329
			  AND((@p_LEVEL='ALL' AND A.BRANCH_CREATE IN(SELECT BRANCH_ID FROM @tmp_Login))
330
              OR((@p_LEVEL='UNIT' AND A.BRANCH_CREATE=@p_BRANCH_CREATE)OR(@p_BRANCH_CREATE='' OR @p_BRANCH_CREATE IS NULL)))
331
			  --- KIEM TRA NEU LA MAN HINH TIM KIEM PHIEU TAM UNG DE HOAN TAM UNG THI CHI LAY NHUNG PHIEU TAM UNG CO SO TIEN TAM UNG CON LAI =0
332
			  AND(((@p_PROCESS='PM' AND  (A.REQ_AMT- ISNULL(H.SOTIEN_TT,0)) >0) AND A.REQ_TYPE='I') OR @p_PROCESS IS NULL OR @p_PROCESS ='')
333
			  AND ((@p_FUNCTION ='KT' AND A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT ='') OR @p_FUNCTION IS NULL OR @p_FUNCTION ='')	  
334
			  AND(PC4.TLNAME = @p_TRASFER_USER_RECIVE OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE ='')
335
			  AND (
336
			    (A.REQ_TYPE IN ('I','P','D')
337
				AND (@p_TYPE_SEARCH='HC' AND EXISTS(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_LOGIN AND BRANCH_TYPE ='HS') 
338
										  AND ( (A.PROCESS IS NOT NULL AND A.PROCESS <> '' AND (SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =A.MAKER_ID) = (SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =@p_USER_LOGIN))
339
										   OR(A.MAKER_ID =@P_USER_LOGIN OR A.TRASFER_USER_RECIVE =@p_USER_LOGIN))
340
				OR (@p_TYPE_SEARCH='HC' AND NOT EXISTS(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_LOGIN AND BRANCH_TYPE ='HS')
341
										  AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login))
342
				OR (@p_TYPE_SEARCH ='HC' AND (A.DVDM_ID IS NOT NULL OR A.DVDM_ID <>'' AND A.DVDM_ID =@DVDM_ID AND A.PROCESS IS NOT NULL AND A.PROCESS <>'') OR (A.DEP_ID IN (SELECT * FROM @TMP_DEP) AND A.PROCESS IS NOT NULL AND A.PROCESS <>''))
343
				OR (@p_TYPE_SEARCH ='HC' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID= A.REQ_PAY_ID AND ROLE_USER ='TGD' AND STATUS ='C'))
344
				-- HOAC NGUOC LAI NEU HC NHUNG PHIEU DUOC TAO O PGD, CN
345
				OR (@p_TYPE_SEARCH='KT' AND  A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)))
346
				)
347
				OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH ='')
348
		ORDER BY A.CREATE_DT DESC;
349
    END;
350
    ELSE BEGIN
351
        SELECT A.*,ISNULL(B.AUTH_STATUS_NAME,N'Chờ duyệt') AS AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME,
352
		TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT,
353
		BR.BRANCH_NAME BRANCH_NAME_REQ, BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME AS DEP_NAME, DP.DEP_CODE AS DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
354
		--Luanlt--2019/10/15-Sửa AL,AL1
355
		BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, 
356
		A.REQ_AMT AS TOTAL_AMT_TEMP,CASE WHEN H.SOTIEN_TT IS NULL THEN ISNULL(A.PAY_AMT,0) ELSE  ISNULL(H.SOTIEN_TT,0) END AS TOTAL_AMT_PAY_HIS,
357
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,
358
		TL6.TLFullName AS REC_DEBIT_NAME, TL6.TLNANME AS REC_DEBIT_CODE, TL7.TLFullName AS EMP_NAME, TL7.TLNANME AS EMP_CODE,
359
		PO.PO_CODE, PO.PO_NAME,SUP.SUP_NAME,SUP.TAX_NO AS SUP_TAX_NO,CUS.CUSTOMER_CODE AS CUST_CODE, CUS.CUSTOMER_NAME AS CUST_NAME,PM.PAY_PHASE AS KY_TAM_UNG,
360
		DV.DVDM_CODE, DV.DVDM_NAME, PC.ROLE_USER AS ROLE_CONF, PR.PROCESS_DESC +N' vào lúc '+ CONVERT(VARCHAR(30), CONVERT(DATETIME, PR.APP_DT,103))  AS CONF_STATUS, PC1.NOTES AS NEXT_STEP,
361
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,PC3.TLNAME AS EXEC_USER,TL8.TLFullName AS RECIVER_MONEY_FULLNAME, BR1.BRANCH_TYPE AS BRANCH_TYPE_CR, BR.BRANCH_TYPE,@p_TYPE_SEARCH AS TYPE_SEARCH,
362
		SR.ROLE_ID AS ROLE_ID_CRE
363
        FROM TR_REQ_ADVANCE_PAYMENT A
364
             LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
365
             LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
366
             LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
367
             LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
368
             LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
369
             LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
370
             LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
371
			 LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
372
             LEFT JOIN dbo.CM_DEPARTMENT DP ON A.DEP_ID= DP.DEP_ID
373
			 --Luanlt--2019/10/15-Sửa AL,AL1
374
			 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='REQ_TYPE'
375
			 LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE'
376
			 LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
377
			 LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
378
			LEFT JOIN TL_USER TL6 ON A.RECEIVER_DEBIT = TL6.TLNANME AND A.REQ_TYPE='D'
379
			 LEFT JOIN
380
			 (
381
			 SELECT PAY_ADV_ID,(ISNULL(SUM(AMT_USE),0) - ISNULL(SUM(AMT_ADD),0) + ISNULL(SUM(AMT_REVERT),0)) AS SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
382
			 ) H ON A.REQ_PAY_ID = H.PAY_ADV_ID
383
			 LEFT JOIN TL_USER TL7 ON TL7.TLNANME = A.REF_ID AND A.REQ_TYPE='I'
384
			 LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
385
			 LEFT JOIN CM_SUPPLIER SUP ON PO.SUP_ID = SUP.SUP_ID AND A.REQ_TYPE='P'
386
			 LEFT JOIN LS_CUSTOMER CUS ON A.REF_ID = CUS.CUSTOMER_ID AND A.REQ_TYPE='D'
387
			 LEFT JOIN TR_PO_PAYMENT PM ON A.PAY_PHASE = PM.PAY_ID AND A.REQ_TYPE='P'
388
			 LEFT JOIN CM_DVDM DV ON A.DVDM_ID = DV.DVDM_ID
389
			 --LEFT JOIN PL_PROCESS PR ON A.PROCESS = PR.PROCESS_ID AND A.REQ_PAY_ID = PR.REQ_ID
390
			 LEFT JOIN 
391
			 (
392
				SELECT P.REQ_ID, P.PROCESS_DESC, P.APPROVE_DT AS APP_DT FROM PL_PROCESS P
393
				INNER JOIN 
394
				(
395
					SELECT MAX (PR.ID) AS ID, MAX(PR.REQ_ID) AS REQ_ID FROM PL_PROCESS PR
396
					GROUP BY PR.REQ_ID
397
				) PR ON PR.REQ_ID = P.REQ_ID AND P.ID = PR.ID
398
			 ) AS PR ON A.REQ_PAY_ID = PR.REQ_ID
399
			 LEFT JOIN PL_REQUEST_PROCESS PC ON PC.REQ_ID= A.REQ_PAY_ID AND PC.ROLE_USER = @ROLE_ID AND PC.STATUS='C'
400
			 LEFT JOIN PL_REQUEST_PROCESS PC1 ON PC1.REQ_ID= A.REQ_PAY_ID AND PC1.STATUS='C'
401
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'
402
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
403
			 LEFT JOIN TL_USER TL8 ON A.RECIVER_MONEY = TL8.TLNANME	
404
			 LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
405
        WHERE 1=1 
406
			  AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' OR @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)
407
			  AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)
408
			  AND(A.AUTH_STATUS=@p_AUTH_STATUS OR @p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL)
409
			  AND((A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE_KT='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
410
			 OR((A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N'))OR @p_IS_UPDATE_KT IS NULL OR @p_IS_UPDATE_KT='')
411
			  AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)
412
			  --Luanlt-2019/10/14-Thêm Filter  REQ_TYPE,FROMDATE TODATE REF_ID
413
			  AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
414
			  AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='')
415
              AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='')
416
			  --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME  BRANCH_ID DEP_ID KT_AUTH
417
			  AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)
418
			  --AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'')
419
			  AND(A.DEP_ID = @p_DEP_ID  or @p_DEP_ID='' OR @p_DEP_ID IS NULL)
420
			  AND((A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' OR @p_AUTH_STATUS_KT IS NULL) OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S')))
421
			  AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL)
422
			  AND(( @p_IS_TRANSFER='Y' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID)) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
423
              OR((@p_IS_TRANSFER='N' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID)))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='')
424
			  AND(((@p_PROCESS='PM' AND  (A.REQ_AMT- ISNULL(H.SOTIEN_TT,0)) >0)  AND A.REQ_TYPE='I') OR @p_PROCESS IS NULL OR @p_PROCESS ='')	
425
			  AND((@p_LEVEL='ALL' AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp))
426
              OR((@p_LEVEL='UNIT' AND A.BRANCH_ID=@p_BRANCH_ID)OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL)))
427

    
428
				AND((@p_LEVEL='ALL' AND A.BRANCH_CREATE IN(SELECT BRANCH_ID FROM @tmp_Login))
429
              OR((@p_LEVEL='UNIT' AND A.BRANCH_CREATE=@p_BRANCH_CREATE)OR(@p_BRANCH_CREATE='' OR @p_BRANCH_CREATE IS NULL)))
430
			  --AND ((@p_TRASFER_USER_RECIVE IS NOT NULL AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE TLNAME = @p_TRASFER_USER_RECIVE ))
431
			  --OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE ='')	
432
			  AND ((@p_FUNCTION ='KT' AND EXISTS(SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND TLNAME= @p_USER_LOGIN))
433
					OR @p_FUNCTION IS NULL OR @p_FUNCTION ='' OR @p_FUNCTION ='TF')	  
434
			  AND(A.MAKER_ID LIKE '%'+@p_MAKER_ID+'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID ='')
435
			  --AND(A.MAKER_ID_KT LIKE '%'+@p_TRASFER_USER_RECIVE+'%' OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE ='')
436
			  --AND(PC4.TLNAME = @p_TRASFER_USER_RECIVE OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE ='')
437
			 AND(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE TLNAME =@p_TRASFER_USER_RECIVE AND TYPE_JOB='XL' AND REQ_ID = A.REQ_PAY_ID) OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE='')
438
			  AND
439
			  ( 
440
			  A.MAKER_ID =@p_USER_LOGIN OR (A.TRASFER_USER_RECIVE = @p_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R'))
441
			  OR(
442
			  A.AUTH_STATUS <>'E' AND((@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG ='HS' AND A.REQ_TYPE ='I' 
443
										AND (A.TRASFER_USER_RECIVE = @p_USER_LOGIN 
444
										OR (@ROLE_ID = (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID AND ROLE_USER =@ROLE_ID)
445
										OR (A.DVDM_ID IS NULL AND A.DEP_ID =@DEP_ID_LG))
446
										))
447
			  OR(@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG ='HS' AND A.REQ_TYPE <> 'I' AND 
448
			  (A.TRASFER_USER_RECIVE = @p_USER_LOGIN OR (@ROLE_ID IN ('GDDV','GDK','KTT','TPTC') AND A.BRANCH_ID =@p_BRANCH_LOGIN AND A.DEP_ID =@DEP_ID_LG 
449
																					AND( A.TRASFER_USER_RECIVE IS NULL OR A.TRASFER_USER_RECIVE ='' OR (A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' AND A.PROCESS IS NOT NULL AND A.PROCESS <>'')))))
450
			  OR(@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'CN' AND (@ROLE_ID = 'GDDV' AND 
451
			  ((A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' AND A.PROCESS IS NOT NULL AND A.PROCESS <>'') OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL)
452
			  AND ((A.BRANCH_CREATE <> @p_BRANCH_LOGIN AND A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'') OR A.BRANCH_CREATE = @p_BRANCH_LOGIN)
453
			  AND A.BRANCH_ID IN (SELECT * FROM @tmp)))
454
			  OR(@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'PGD' AND (@ROLE_ID IN ('GDDV','TPGD') AND A.BRANCH_ID =@p_BRANCH_LOGIN))
455
			  OR(@p_TYPE_SEARCH ='HC' AND (A.DVDM_ID IS NOT NULL AND A.DVDM_ID <>'' AND A.DVDM_ID =@DVDM_ID AND A.PROCESS IS NOT NULL AND A.PROCESS <>'' AND @ROLE_ID IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID))
456
			  OR(A.DEP_ID IN (SELECT * FROM @TMP_DEP) AND A.PROCESS IS NOT NULL AND A.PROCESS <>'' AND @ROLE_ID IN (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID =A.REQ_PAY_ID)))
457
			  OR(@p_TYPE_SEARCH ='HC' AND (@ROLE_ID = (SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID= A.REQ_PAY_ID AND ROLE_USER  IN ('TGD','HDQT') AND STATUS ='C')))
458
			  OR(@p_TYPE_SEARCH='KT' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login))
459
			  OR(@p_TYPE_SEARCH='PAY' AND (A.PAY_AMT -A.REQ_AMT) >=0)
460
			  )))	
461
		ORDER BY A.CREATE_DT DESC;
462
    END;
463

    
464

    
465
¿
466
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_Search]
467
@p_REQ_PAY_ID	varchar(15)= NULL,
468
@p_REQ_PAY_CODE	varchar(50)	= NULL,
469
@p_REQ_DT VARCHAR(20)= NULL,
470
@p_BRANCH_ID	varchar(15)	= NULL,
471
@p_DEP_ID	varchar(15)	= NULL,
472
@p_REQ_REASON	nvarchar(MAX)	= NULL,
473
@p_REQ_TYPE	varchar(15)	= NULL,
474
@P_REQ_ENTRIES nvarchar(MAX)	= NULL,
475
@p_REQ_DESCRIPTION	nvarchar(MAX)	= NULL,
476
@p_REF_ID	varchar(15)	= NULL,
477
@p_RECEIVER_PO	nvarchar(250)	= NULL,
478
@p_REQ_PAY_TYPE	varchar(15)	= NULL,
479
@p_REQ_TYPE_CURRENCY	nvarchar(50)	= NULL,
480
@p_REQ_AMT	decimal(18, 0)	= NULL,
481
@p_REQ_TEMP_AMT	decimal(18, 0)	= NULL,
482
@p_MAKER_ID	varchar(15)	= NULL,
483
@p_CREATE_DT	varchar(25)	= NULL,
484
@p_EDITOR_ID	varchar(15)	= NULL,
485
@p_AUTH_STATUS	varchar(1)	= NULL,
486
@p_CHECKER_ID	varchar(15)	= NULL,
487
@p_APPROVE_DT	varchar(25)	= NULL,
488
@p_CREATE_DT_KT	varchar(25)	= NULL,
489
@p_MAKER_ID_KT	varchar(15)	= NULL,
490
@p_AUTH_STATUS_KT	varchar(1)	= NULL,
491
@p_CHECKER_ID_KT	varchar(1)	= NULL,
492
@p_APPROVE_DT_KT  varchar(25)= null,
493
@p_CONFIRM_NOTE	nvarchar(500)	= NULL,
494
@p_BRANCH_CREATE	varchar(15)	= NULL,
495
@p_NOTES	varchar(15)	= NULL,
496
@p_RECORD_STATUS	varchar(1)	= NULL,
497
@p_TRANSFER_MAKER	nvarchar(50)	= NULL,
498
@p_TRANSFER_DT	varchar(25)	= NULL,
499
@p_TRASFER_USER_RECIVE	varchar(15)	= NULL,
500
@p_PROCESS	varchar(15)	= NULL,
501
@p_PAY_PHASE VARCHAR(15) = NULL,
502
@p_TOP INT = 10,
503
@p_LEVEL varchar(10) = NULL,
504
@p_FRMDATE VARCHAR(20)= NULL,
505
@p_TODATE VARCHAR(20) = NULL,
506
@p_BRANCH_LOGIN VARCHAR(15) = NULL,
507
@p_IS_UPDATE_KT VARCHAR(15) = NULL,
508
@P_IS_TRANSFER VARCHAR(15) = NULL,
509
@p_TERM_ID VARCHAR(15) = NULL,
510
@P_USER_LOGIN VARCHAR(15)= NULL,
511
@p_FUNCTION VARCHAR(15) = NULL,
512
@p_TYPE_SEARCH VARCHAR(15) = NULL
513
AS
514
SET @p_TOP = NULL
515
declare @tmp table(BRANCH_ID varchar(15))
516
insert into @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
517
declare @tmp_Login table(BRANCH_ID varchar(15))
518
insert into @tmp_Login  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
519
DECLARE @ROLE_ID VARCHAR(20) , @DEP_ID_LG VARCHAR(15) = NULL, @COST_LG VARCHAR(15), @DVDM_ID VARCHAR(15)
520
DECLARE @BRANCH_TYPE VARCHAR(15)
521
SET @BRANCH_TYPE =(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=(SELECT BRANCH_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID))
522
SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
523
SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
524
DECLARE @TMP_DEP TABLE(DEP_ID VARCHAR(15))
525
SET @COST_LG =(SELECT TOP 1 COST_ID FROM PL_COSTCENTER_DT WHERE DEP_ID =@DEP_ID_LG)
526
SET @DVDM_ID =(SELECT TOP 1 DVDM_ID FROM PL_COSTCENTER WHERE COST_ID =@COST_LG)
527
INSERT INTO @TMP_DEP SELECT B.DEP_ID FROM PL_COSTCENTER_DT B  WHERE COST_ID =@COST_LG
528
DECLARE @BRANCH_TYPE_LG VARCHAR(15)
529
SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
530
IF(@p_TOP=NULL OR @p_TOP='' OR @p_TOP=0)BEGIN
531
		SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME,
532
		TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT,
533
		BR.BRANCH_NAME BRANCH_NAME_REQ, BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
534
		--Luanlt--2019/10/15-Sửa AL,AL1
535
		BR1.BRANCH_CODE BRANCH_CODE_CRE,  AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT -H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP, 
536
		ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
537
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME, '' EMP_FULLNAME, PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
538
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,PC3.TLNAME AS EXEC_USER,@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE, '' AS BRANCH_TYPE_CR
539
        FROM TR_REQ_PAYMENT A
540
             LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
541
             LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
542
             LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
543
             LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
544
             LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
545
             LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
546
             LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
547
			 LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
548
             LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
549
			 --Luanlt--2019/10/15-Sửa AL,AL1
550
			 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE'--Loại thanh toán (Nội bộ/Thanh toán/Nợ)
551
			 LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE'--Hình thức thanh toán( Tiền mặt/Chuyển khoản)			 
552
			 LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
553
			 LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
554
			 LEFT JOIN 
555
			 (
556
			 SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
557
			 ) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
558
			 LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
559
			 LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
560
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'
561
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
562
			 LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
563
        WHERE 1=1 
564
			  AND(A.AUTH_STATUS=@p_AUTH_STATUS OR @p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL)
565
              AND((@p_LEVEL='ALL' AND A.BRANCH_CREATE IN(SELECT BRANCH_ID FROM @tmp))
566
              OR((@p_LEVEL='UNIT' AND A.BRANCH_CREATE=@p_BRANCH_CREATE)OR(@p_BRANCH_CREATE='' OR @p_BRANCH_CREATE IS NULL)))
567
			  AND((A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE_KT='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
568
              OR((A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N'))OR @p_IS_UPDATE_KT IS NULL OR @p_IS_UPDATE_KT='')
569
			  AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)
570
			  --Luanlt-2019/10/14-Thêm Filter  REQ_TYPE,FROMDATE TODATE REF_ID
571
			  AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
572
			  AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='')
573
              AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='')
574
			  --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME  BRANCH_ID DEP_ID KT_AUTH
575
			  AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)
576
			  AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'')
577
			  AND(A.BRANCH_CREATE = @p_BRANCH_CREATE or @p_BRANCH_CREATE='' OR @p_BRANCH_CREATE IS NULL)
578
			  AND(A.DEP_ID = @p_DEP_ID  or @p_DEP_ID='' OR @p_DEP_ID IS NULL)
579
			  AND(A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' OR @p_AUTH_STATUS_KT IS NULL)
580
			  AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL)
581
			  -- Neu ben phan he ke toan thi chi lay nhung user co maker_id khac null
582
			  AND ((@p_FUNCTION ='KT' AND A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT ='') OR @p_FUNCTION IS NULL OR @p_FUNCTION ='' OR @p_FUNCTION ='TF')	
583
			  AND(PC4.TLNAME = @p_TRASFER_USER_RECIVE OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE ='')
584
			  -- BO SUNG DOAN CODE DO DON VI THI TRUONG PHONG NAO CHI DUOC THAY CAC GIAO DICH CUA PHONG DO THOI
585
			   -- NEU LA PHIEU DE NGHI TAM UNG NOI BO DO HOI SO TAO THI TRUONG PHONG CHI DUOC PHEP THAY CAC GIAO DICH DO NHAN VIEN CUA MINH TAO
586
			--AND ( 
587
			--  (@p_FUNCTION <>'TF' AND A.REQ_TYPE IN ('I','P','D') AND EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_TYPE ='HS' AND BRANCH_ID = A.BRANCH_ID) AND A.DEP_ID = @DEP_ID_LG)
588
			--  OR (@p_FUNCTION <>'TF' AND EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_TYPE IN ('CN', 'PGD') AND BRANCH_ID = A.BRANCH_ID))
589
			--  OR (@p_FUNCTION ='TF' AND A.BRANCH_CREATE IN(SELECT BRANCH_ID FROM @tmp_Login))
590
			--  )
591
			--- CHECK NEU TIM KIEM O HCQT THI PHONG BAN NAO THAY GIAO DICH CUA PHONG BAN DO
592
			AND (@p_TYPE_SEARCH='HC' AND EXISTS(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE ='HS') 
593
									  AND ( ((A.PROCESS IS NOT NULL AND A.PROCESS <> '' OR A.TRASFER_USER_RECIVE IS NULL OR A.TRASFER_USER_RECIVE ='') AND (SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =A.MAKER_ID) = (SELECT SECUR_CODE FROM TL_USER WHERE TLNANME =@p_USER_LOGIN))
594
										   OR(A.MAKER_ID =@P_USER_LOGIN OR A.TRASFER_USER_RECIVE =@p_USER_LOGIN))
595
			OR (@p_TYPE_SEARCH='HC' AND NOT EXISTS(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = A.BRANCH_ID AND BRANCH_TYPE ='HS')
596
									  AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login))
597
			-- HOAC NGUOC LAI NEU HC NHUNG PHIEU DUOC TAO O PGD, CN
598
			OR (@p_TYPE_SEARCH='KT' AND  A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login))
599
			OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH ='')
600
		ORDER BY A.CREATE_DT DESC;
601
    END;
602
    ELSE BEGIN
603
        SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME,
604
		TL1.TLFullName APPROVE_FULLNAME,TL2.TLFullName CREATE_FULLNAME_KT,TL3.TLFullName APPROVE_FULLNAME_KT,
605
		BR.BRANCH_NAME BRANCH_NAME_REQ, BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
606
		--Luanlt--2019/10/15-Sửa AL,AL1
607
		BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT -H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP, 
608
		ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
609
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
610
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,PC3.TLNAME AS EXEC_USER,@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,BR1.BRANCH_TYPE AS BRANCH_TYPE_CR
611
        FROM TR_REQ_PAYMENT A
612
             LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
613
             LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
614
             LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
615
             LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
616
             LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
617
             LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
618
             LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
619
			 LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
620
             LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
621
			 --Luanlt--2019/10/15-Sửa AL,AL1
622
			 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE'
623
			 LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE'
624
			 LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
625
			 LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
626
			 LEFT JOIN 
627
			 (
628
			 SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
629
			 ) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
630
			 LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
631
			 LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
632
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' 
633
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
634
			  LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
635
        WHERE 1=1 
636
			  AND(A.AUTH_STATUS=@p_AUTH_STATUS OR @p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL)
637
			  AND(A.MAKER_ID =@p_MAKER_ID OR @p_MAKER_ID='' OR @p_MAKER_ID IS NULL)
638
			  AND(A.DEP_ID=@p_DEP_ID OR @p_DEP_ID='' OR @p_DEP_ID IS NULL)
639
			  AND((@p_LEVEL='ALL' AND A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp_Login))
640
              OR((@p_LEVEL='UNIT' AND A.BRANCH_ID=@p_BRANCH_ID)OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL)))
641
              AND((@p_LEVEL='ALL' AND A.BRANCH_CREATE IN(SELECT BRANCH_ID FROM @tmp_Login))
642
              OR((@p_LEVEL='UNIT' AND A.BRANCH_CREATE=@p_BRANCH_CREATE)OR(@p_BRANCH_CREATE='' OR @p_BRANCH_CREATE IS NULL)))
643
			  AND((A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE_KT='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
644
              OR((A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE_KT='N'))OR @p_IS_UPDATE_KT IS NULL OR @p_IS_UPDATE_KT='')
645
			  AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)
646
			  --Luanlt-2019/10/14-Thêm Filter  REQ_TYPE,FROMDATE TODATE REF_ID
647
			  AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
648
			  AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='')
649
              AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='')
650
			  --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME  BRANCH_ID DEP_ID KT_AUTH
651
			  AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)
652
			  AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' or @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)
653
			  --AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'')
654
			  --AND(A.BRANCH_CREATE = @p_BRANCH_CREATE or @p_BRANCH_CREATE='' OR @p_BRANCH_CREATE IS NULL)
655
			  AND(A.DEP_ID = @p_DEP_ID  or @p_DEP_ID='' OR @p_DEP_ID IS NULL)
656
			  AND((A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT='' OR @p_AUTH_STATUS_KT IS NULL) OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S')))
657
			  AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL)
658
			  --AND((A.TRANSFER_MAKER IS NOT NULL AND @p_IS_TRANSFER='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
659
              --OR((A.TRANSFER_MAKER IS NULL AND @p_IS_TRANSFER='N'))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='')
660
			  -- Neu ben phan he ke toan thi chi lay nhung user co maker_id khac null
661
			    AND ((@p_FUNCTION ='KT' AND EXISTS(SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID AND TLNAME= @p_USER_LOGIN)) 
662
				OR @p_FUNCTION ='' OR @p_FUNCTION IS NULL OR @p_FUNCTION ='TF' )	  
663
			 -- AND ((@p_FUNCTION ='KT' AND A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT ='') OR @p_FUNCTION IS NULL OR @p_FUNCTION ='')
664
			  AND(( @p_IS_TRANSFER='Y' AND EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID)) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
665
              OR((@p_IS_TRANSFER='N' AND NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID )))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='')	
666
			AND
667
			  ( 
668
			  A.MAKER_ID =@p_USER_LOGIN  OR ( A.TRASFER_USER_RECIVE = @P_USER_LOGIN AND A.AUTH_STATUS NOT IN ('E','R'))
669
			  OR(A.AUTH_STATUS <>'E' AND
670
			  (
671
			  (@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG ='HS'  AND (A.TRASFER_USER_RECIVE = @p_USER_LOGIN OR (@ROLE_ID IN ('GDDV','GDK','KTT','TPTC') AND A.BRANCH_ID =@p_BRANCH_LOGIN AND A.DEP_ID =@DEP_ID_LG 
672
																																		  AND( A.TRASFER_USER_RECIVE IS NULL OR A.TRASFER_USER_RECIVE ='' OR (A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' AND A.PROCESS IS NOT NULL AND A.PROCESS <>'')))))
673
			  OR(@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'CN' AND (@ROLE_ID = 'GDDV' AND 
674
			  ((A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'' AND A.PROCESS IS NOT NULL AND A.PROCESS <>'') OR A.TRASFER_USER_RECIVE ='' OR A.TRASFER_USER_RECIVE IS NULL)
675
			  AND ((A.BRANCH_CREATE <> @p_BRANCH_LOGIN AND A.TRASFER_USER_RECIVE IS NOT NULL AND A.TRASFER_USER_RECIVE <>'') OR A.BRANCH_CREATE = @p_BRANCH_LOGIN)
676
			  AND A.BRANCH_ID IN (SELECT * FROM @tmp)))
677
			  OR(@p_TYPE_SEARCH ='HC' AND @BRANCH_TYPE_LG = 'PGD' AND (@ROLE_ID IN ('GDDV','TPGD') AND A.BRANCH_ID =@p_BRANCH_LOGIN))
678
			  OR(@p_TYPE_SEARCH ='HC' AND @ROLE_ID ='KSV' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login))
679
			  OR(@p_TYPE_SEARCH='KT' AND  A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login))
680
			  OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH =''
681
			  )))	
682
		ORDER BY A.CREATE_DT DESC;
683
    END;
684
¿
685
ALTER PROCEDURE [dbo].[TR_PO_MASTER_Upd]
686
@p_PO_ID	varchar(15) = NULL,
687
@P_PO_TYPE INT = NULL,
688
@p_PO_CODE	varchar(15)  = NULL,
689
@p_PO_NAME	nvarchar(200)  = NULL,
690
@p_CONTRACT_ID	varchar(15)  = NULL,
691
@p_SUP_ID	varchar(15)  = NULL,
692
@p_SUP_NAME	nvarchar(200)  = NULL,
693
@p_SUP_ADDR	nvarchar(200)  = NULL,
694
@p_INPUT_DT	VARCHAR(20) = NULL,
695
@p_PAYMENT_DT	VARCHAR(20) = NULL,
696
@p_TOTAL_AMT	decimal(18)  = NULL,
697
@p_REQ_DOC_ID	varchar(15)  = NULL,
698
@p_DELIVERY_DT	VARCHAR(20) = NULL,
699
@p_PAYAPP_DT	VARCHAR(20) = NULL,
700
@p_NOTES	nvarchar(1000)  = NULL,
701
@p_RECORD_STATUS	varchar(1)  = NULL,
702
@p_MAKER_ID	varchar(15)  = NULL,
703
@p_CREATE_DT	VARCHAR(20) = NULL,
704
@p_AUTH_STATUS	varchar(50)  = NULL,
705
@p_CHECKER_ID	varchar(15)  = NULL,
706
@p_APPROVE_DT	VARCHAR(20) = NULL,
707
@p_TR_REQ_ID VARCHAR(20) = NULL,
708
@p_TR_REQ_CODE VARCHAR(20)= NULL,
709
@P_LISTASSET XML = NULL,
710
@P_LISTPAYMENT XML = NULL,
711
@P_LISTROLE XML = NULL,
712
@p_BRANCH_ID varchar(15) = null,
713
@p_IS_CLOSED VARCHAR(1) = NULL
714
AS
715
	DECLARE @REF_CODE VARCHAR(15) = NULL, @PDN_TT VARCHAR(15) = NULL
716
	SET @REF_CODE =
717
	(	SELECT TOP 1 B.REQ_PAY_CODE
718
		FROM TR_REQ_ADVANCE_DT A
719
		INNER JOIN TR_REQ_ADVANCE_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
720
		WHERE A.REF_ID =@p_PO_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL)
721
	)
722
	--- TIM KIEM XEM PO NAY CO DUOC PHEP THANH TOAN HAY KHONG
723
	SET @PDN_TT =
724
	(	SELECT TOP 1 B.REQ_PAY_CODE
725
		FROM TR_REQ_ADVANCE_DT A
726
		INNER JOIN TR_REQ_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
727
		WHERE A.REF_ID =@p_CONTRACT_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL)
728
	)
729
	IF(@p_IS_CLOSED ='Y' AND @REF_CODE IS NOT NULL)
730
	BEGIN
731
		ROLLBACK TRANSACTION
732
			SELECT '-1' Result, @p_PO_ID AS PO_ID, N'PO đang được thực hiện tạm ứng với số phiếu: '+@REF_CODE AS ErrorDesc 
733
			RETURN '-1'
734
	END
735
	IF(@p_IS_CLOSED ='Y' AND @PDN_TT IS NOT NULL)
736
	BEGIN
737
		ROLLBACK TRANSACTION
738
			SELECT '-1' Result, @p_PO_ID AS PO_ID, N'PO đang được thực hiện thanh toán với số phiếu: '+@PDN_TT AS ErrorDesc 
739
			RETURN '-1'
740
	END
741
	IF EXISTS(SELECT * FROM TR_PO_MASTER WHERE [PO_CODE] = @p_PO_CODE AND [PO_ID] <> @p_PO_ID)
742
	BEGIN
743
		SELECT ErrorCode Result, '' PO_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'PO-00002'
744
		RETURN '0'
745
	END
746
	--- 21052020 KIEM TRA XEM NEU PYCMS DA TON TAI HAY CHUA
747
	IF((SELECT COUNT(*) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_DOC_ID)=1)
748
	BEGIN
749
			IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE REQ_DOC_ID =@p_REQ_DOC_ID AND AUTH_STATUS IN ('E','U','A') AND PO_ID <>@p_PO_ID))
750
			BEGIN
751
				ROLLBACK TRANSACTION
752
				SELECT '-1' Result, @p_PO_ID AS PO_ID, N'Phiếu yêu cầu mua sắm số :'+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_DOC_ID)+N' đã được link tới PO có số: '+(SELECT TOP 1 PO_CODE FROM TR_PO_MASTER WHERE REQ_DOC_ID =@p_REQ_DOC_ID) AS ErrorDesc 
753
				RETURN '-1'
754
			END
755
	END
756
	------
757
	Declare @hdoc INT
758
	Exec sp_xml_preparedocument @hdoc Output,@P_LISTASSET
759
	DECLARE AssetDetail CURSOR FOR
760
	SELECT *
761
	FROM OPENXML(@hDoc,'/Root/AssetDetail',2)
762
	WITH 
763
	(
764
		PD_ID VARCHAR(15),
765
		PLAN_ID	varchar(15)  ,
766
		TRADE_ID	varchar(15)  ,
767
		GOODS_ID	varchar(15)  ,
768
		[DESCRIPTION] nvarchar(500),
769
		UNIT_ID	varchar(15)  ,
770
		QUANTITY	decimal(18)  ,
771
		PRICE	decimal(18)  ,
772
		TOTAL_AMT	decimal(18),
773
		IS_DELIVERY	varchar(1) ,
774
		DELIVERY_DT	VARCHAR(20),
775
		PAYMENT_STATUS	varchar(4),
776
		AMOUNT_PAID	decimal(18)  ,
777
		PAID_DT	VARCHAR(20) ,
778
		INVOICENO	varchar(1000),
779
		NOTES	nvarchar(1000),
780
		RECEIVE_BRANCH	varchar(15),
781
		RECEIVE_ADDR	nvarchar(1000),
782
		RECEIVE_PERSON	nvarchar(500),
783
		RECEIVE_TEL	varchar(100),
784
		EXP_DELIVERY_DT varchar(20),
785
		GOODS_NAME NVARCHAR(500),
786
		INVOICE_DT	VARCHAR(20),
787
		--THIEUVQ 100415 THEM LOAI HANG HOA THUC TE
788
		GOODSTYPE_REAL	VARCHAR(15),
789
		GOODSTYPE_REAL_NAME	VARCHAR(15),
790
		--THIEUVQ 13092016 THEM VAT, CONTRACT_DT
791
		VAT DECIMAL(18,2),
792
		PRICE_VAT DECIMAL(18,0),
793
		CONTRACT_DT VARCHAR(15)
794
		)
795
	OPEN AssetDetail
796

    
797
	Exec sp_xml_preparedocument @hdoc Output,@P_LISTPAYMENT
798
	DECLARE PaymentDetail CURSOR FOR
799
	SELECT *
800
	FROM OPENXML(@hDoc,'/Root/PaymentDetail',2)
801
	WITH 
802
	(
803
		PAY_ID	VARCHAR(15),
804
		PAY_PHASE	varchar(15),
805
		EXPECTED_DT	VARCHAR(20),
806
		[PERCENT]	decimal(18),
807
		[AMOUNT]	decimal(18),
808
		NOTES	nvarchar(1000)
809
	)
810
	OPEN PaymentDetail
811
	PRINT 'PASS KHOI TAO'
812

    
813
	--Nhom user gui mail (DAO EDIT)
814
	Exec sp_xml_preparedocument @hdoc Output,@P_LISTROLE
815
	DECLARE LISTROLE CURSOR FOR
816
	SELECT *
817
	FROM OPENXML(@hDoc,'/Root/LISTROLE',2)
818
	WITH 
819
	(
820
		NOTIFI_ID	VARCHAR(15),
821
		TL_NAME	varchar(15),
822
		EDITOR_DT VARCHAR(20),
823
		EDITOR_ID VARCHAR(15),
824
		NOTES nvarchar(1000)
825
	)
826
	OPEN LISTROLE
827

    
828
BEGIN TRANSACTION
829
		IF @p_DELIVERY_DT = ''
830
			SET @p_DELIVERY_DT = NULL
831
		IF @p_PAYAPP_DT	= ''
832
			SET @p_PAYAPP_DT = NULL
833
		--insert master
834
		UPDATE TR_PO_MASTER SET [PO_TYPE] = @P_PO_TYPE, [PO_CODE] = @p_PO_CODE,[PO_NAME] = @p_PO_NAME,
835
		[CONTRACT_ID] = @p_CONTRACT_ID,[SUP_ID] = @p_SUP_ID,[SUP_NAME] = @p_SUP_NAME,[SUP_ADDR] = @p_SUP_ADDR,
836
		[INPUT_DT] = CONVERT(DATETIME, @p_INPUT_DT, 103),[PAYMENT_DT] = CONVERT(DATETIME, @p_PAYMENT_DT, 103),
837
		[TOTAL_AMT] = @p_TOTAL_AMT,[REQ_DOC_ID] = @p_TR_REQ_ID,[DELIVERY_DT] = CONVERT(DATETIME, @p_DELIVERY_DT, 103),
838
		[PAYAPP_DT] = CONVERT(DATETIME, @p_PAYAPP_DT, 103),[NOTES] = @p_NOTES,[RECORD_STATUS] = '1',
839
		[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = @p_AUTH_STATUS,
840
		[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103), BRANCH_ID = @p_BRANCH_ID
841
		WHERE  PO_ID= @p_PO_ID
842
		IF @@Error <> 0 GOTO ABORT
843
		PRINT 'INSERT MASTER SUCCESS'
844
		UPDATE dbo.TR_PO_MASTER_TEMP SET TR_REQ_ID=@p_TR_REQ_ID,TR_REQ_CODE=@p_TR_REQ_CODE WHERE PO_ID=@p_PO_ID
845

    
846
		--insert asset detail tương đương như NỘI DUNG trong bảng contract detail
847
		Declare 
848
		@PAY_ID VARCHAR(15),
849
		@PD_ID VARCHAR(15),
850
		@PLAN_ID	varchar(15),
851
		@TRADE_ID	varchar(15),
852
		@GOODS_ID	varchar(15),
853
		@DESCRIPTION nvarchar(500),
854
		@UNIT_ID	varchar(15),
855
		@QUANTITY	decimal(18),
856
		@PRICE	decimal(18),
857
		@TOTAL_AMT	decimal(18),
858
		@IS_DELIVERY	varchar(1),
859
		@DELIVERY_DT	VARCHAR(20),
860
		@PAYMENT_STATUS	varchar(4),
861
		@AMOUNT_PAID	decimal(18),
862
		@PAID_DT	VARCHAR(20),
863
		@INVOICENO	varchar(20),
864
		@NOTES	nvarchar(1000),
865
		@PO_ID	varchar(15)  = NULL,
866
		@PAY_PHASE	VARCHAR(20) = NULL,
867
		@EXPECTED_DT	VARCHAR(20) = NULL,
868
		@PERCENT	decimal(18)  = NULL,
869
		@AMOUNT	decimal(18)  = NULL,
870
		@RECEIVE_BRANCH	varchar(15)=NULL,
871
		@RECEIVE_ADDR	nvarchar(1000)=NULL,
872
		@RECEIVE_PERSON	nvarchar(500)=NULL,
873
		@RECEIVE_TEL	varchar(100)=NULL,
874
		@EXP_DELIVERY_DT varchar(20) = NULL,
875
		@GOODS_NAME NVARCHAR(500) = NULL,
876
		@INVOICE_DT	VARCHAR(20),
877
		@GOODSTYPE_REAL	VARCHAR(15) = NULL,
878
		@GOODSTYPE_REAL_NAME	VARCHAR(15) = NULL,
879
		@VAT DECIMAL(18,2),
880
		@PRICE_VAT DECIMAL(18,0),
881
		@CONTRACT_DT VARCHAR(15),
882
		--DAO MOI THEM
883
		@NOTIFI_ID VARCHAR(15),
884
		@TL_NAME VARCHAR(15),
885
		@EDITOR_DT VARCHAR(20),
886
		@EDITOR_ID VARCHAR(15),
887
		@NOTES_ROLE nvarchar(1000)
888

    
889
		DECLARE @l_GOODSTYPE_ID VARCHAR(15)
890

    
891
		DELETE FROM TR_PO_DETAIL WHERE PO_ID = @P_PO_ID 
892

    
893
		FETCH NEXT FROM AssetDetail INTO @PD_ID,@PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
894
		@PRICE,@TOTAL_AMT,@IS_DELIVERY,@DELIVERY_DT,@PAYMENT_STATUS,@AMOUNT_PAID,@PAID_DT,
895
		@INVOICENO,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@EXP_DELIVERY_DT,@GOODS_NAME, @INVOICE_DT,
896
		@GOODSTYPE_REAL,@GOODSTYPE_REAL_NAME,@VAT,@PRICE_VAT,@CONTRACT_DT
897
		WHILE @@FETCH_STATUS = 0
898
		BEGIN
899
			--if( NOT EXISTS (SELECT * FROM PL_MASTER A WHERE A.PLAN_ID = @PLAN_ID))
900
			--BEGIN
901
			--	SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'TR-00002'
902
			--	GOTO ABORT
903
			--END
904

    
905
			IF(LEN(@PD_ID) = 0)
906

    
907
			BEGIN
908
				EXEC SYS_CodeMasters_Gen 'TR_PO_DETAIL', @PD_ID out
909
				IF @PD_ID ='' OR @PD_ID IS NULL GOTO ABORT
910
			END
911
			
912
			IF(@DELIVERY_DT = '')
913
				SET @DELIVERY_DT = NULL
914
			IF(@PAID_DT = '')
915
				SET @PAID_DT = NULL
916
			IF(@INVOICE_DT = '')
917
				SET @INVOICE_DT = NULL				
918
			IF @EXP_DELIVERY_DT = '' SET @EXP_DELIVERY_DT = NULL
919

    
920
			/***THIEUVQ THEM KIEM TRA VA LUU THONG TIN LOAI HANG HOA THUC TE***/
921
			--BEGIN
922
			--CHUA CO LOAI HANG HOA THI THEM MOI
923
			IF @GOODSTYPE_REAL IS NULL OR @GOODSTYPE_REAL = ''
924
			BEGIN
925
				--NEU TON TAI THI LAY RA ID
926
				SET @GOODSTYPE_REAL = (SELECT TOP 1 GD_RETYPE_ID FROM CM_GOODSTYPE_REAL WHERE [TYPE_NAME] = @GOODSTYPE_REAL_NAME)
927
				--NEU CHUA CO THI THEM MOI
928
				IF @GOODSTYPE_REAL IS NULL OR @GOODSTYPE_REAL = ''
929
				BEGIN
930
					EXEC SYS_CodeMasters_Gen 'CM_GOODSTYPE_REAL', @l_GOODSTYPE_ID OUT
931
					IF @l_GOODSTYPE_ID='' OR @l_GOODSTYPE_ID IS NULL GOTO ABORT
932

    
933
					INSERT INTO CM_GOODSTYPE_REAL VALUES (@l_GOODSTYPE_ID, @l_GOODSTYPE_ID, @GOODSTYPE_REAL_NAME, '', '1',
934
					@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),'A',@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103))
935
					IF @@ERROR <> 0 GOTO ABORT
936

    
937
					SET @GOODSTYPE_REAL = @l_GOODSTYPE_ID
938
				END
939
			END			
940
			--END
941

    
942
			INSERT INTO TR_PO_DETAIL([PD_ID],[PO_ID],[PLAN_ID],[TRADE_ID],[GOODS_ID],[DESCRIPTION],[UNIT_ID],[QUANTITY],[PRICE],[TOTAL_AMT],[IS_DELIVERY],[DELIVERY_DT],
943
			[PAYMENT_STATUS],[AMOUNT_PAID],[PAID_DT],[INVOICENO],[NOTES], RECEIVE_BRANCH, RECEIVE_ADDR, RECEIVE_PERSON, RECEIVE_TEL,[RECORD_STATUS],[MAKER_ID],[CREATE_DT],
944
			[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],EXP_DELIVERY_DT,GOODS_NAME,INVOICE_DT,GOODSTYPE_REAL,VAT,PRICE_VAT,CONTRACT_DT)
945
			VALUES(@PD_ID ,@p_PO_ID ,@PLAN_ID ,@TRADE_ID ,@GOODS_ID,@DESCRIPTION ,@UNIT_ID ,@QUANTITY ,@PRICE ,@TOTAL_AMT ,
946
			@IS_DELIVERY ,CONVERT(DATETIME, @DELIVERY_DT, 103) ,@PAYMENT_STATUS ,@AMOUNT_PAID ,
947
			CONVERT(DATETIME, @PAID_DT, 103) ,@INVOICENO ,@NOTES , @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,
948
			@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103),CONVERT(DATETIME, @EXP_DELIVERY_DT, 103),
949
			@GOODS_NAME, CONVERT(DATETIME, @INVOICE_DT, 103),@GOODSTYPE_REAL,@VAT,@PRICE_VAT,@CONTRACT_DT)
950
			IF @@ERROR <> 0 GOTO ABORT
951

    
952
		-- next Group_Id
953
			FETCH NEXT FROM AssetDetail INTO @PD_ID,@PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
954
			@PRICE,@TOTAL_AMT,@IS_DELIVERY,@DELIVERY_DT,@PAYMENT_STATUS,@AMOUNT_PAID,@PAID_DT,
955
			@INVOICENO,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL, @EXP_DELIVERY_DT,@GOODS_NAME,@INVOICE_DT,
956
			@GOODSTYPE_REAL,@GOODSTYPE_REAL_NAME,@VAT,@PRICE_VAT,@CONTRACT_DT
957
		END
958
		
959
		--insert payment detail
960
		
961
		DELETE FROM TR_PO_PAYMENT WHERE PO_ID = @p_PO_ID
962

    
963
		FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@NOTES
964
		WHILE @@FETCH_STATUS = 0
965
		BEGIN
966
			PRINT @PAY_ID
967
			IF(LEN(@PAY_ID) = 0)
968
			BEGIN
969
					EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @PAY_ID out
970
					IF @PAY_ID ='' OR @PAY_ID IS NULL GOTO ABORT
971
			END
972
			IF @EXPECTED_DT = ''
973
				SET @EXPECTED_DT = NULL
974
			INSERT INTO TR_PO_PAYMENT([PAY_ID],[PO_ID],[PAY_PHASE],[EXP_DT],[PERCENT],[AMOUNT],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT])
975
			VALUES(@PAY_ID ,@p_PO_ID ,@PAY_PHASE ,CONVERT(DATETIME, @EXPECTED_DT, 103) ,@PERCENT ,@AMOUNT ,@NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) )
976
			FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@NOTES
977
		END
978

    
979
		CLOSE AssetDetail
980
		DEALLOCATE AssetDetail
981
		CLOSE PaymentDetail
982
		DEALLOCATE PaymentDetail
983

    
984
		---INSERT NHOM QUYEN USER THONG BAO (DAO-EDIT)
985
		DELETE FROM TL_ROLE_NOTIFICATION WHERE PO_ID=@p_PO_ID
986

    
987
	   FETCH NEXT FROM LISTROLE INTO
988
		@NOTIFI_ID,
989
		@TL_NAME,
990
		@EDITOR_DT,
991
		@EDITOR_ID,
992
		@NOTES_ROLE
993
		WHILE @@FETCH_STATUS = 0
994
		BEGIN
995
			IF(LEN(@NOTIFI_ID)=0)
996
			EXEC SYS_CodeMasters_Gen 'TL_ROLE_NOTIFICATION', @NOTIFI_ID out
997
			IF @NOTIFI_ID='' OR @NOTIFI_ID IS NULL GOTO ABORT
998

    
999
			INSERT INTO [dbo].[TL_ROLE_NOTIFICATION]
1000
           ([NOTIFI_ID]
1001
           ,[NOTIFI_CODE]
1002
           ,[NOTIFI_NAME]
1003
           ,[TYPE]
1004
           ,[PO_ID]
1005
           ,[TL_NAME]
1006
           ,[BRANCH_ID]
1007
           ,[RECORD_STATUS]
1008
           ,[AUTH_STATUS]
1009
           ,[EDITOR_ID]
1010
           ,[EDIT_DT]
1011
           ,[NOTES])
1012
			 VALUES
1013
           (@NOTIFI_ID
1014
           ,''
1015
           ,''
1016
           ,'PO'
1017
           ,@p_PO_ID
1018
           ,@TL_NAME
1019
           ,@p_BRANCH_ID
1020
           ,'1'
1021
           ,'U'
1022
           ,@EDITOR_ID
1023
           ,CONVERT(DATETIME, @EDITOR_DT, 103)
1024
           ,@NOTES_ROLE)
1025
			
1026
			IF @@ERROR <> 0 GOTO ABORT
1027
			
1028
			FETCH NEXT FROM LISTROLE INTO
1029
			@NOTIFI_ID,
1030
			@TL_NAME,
1031
			@EDITOR_DT,
1032
			@EDITOR_ID,
1033
			@NOTES_ROLE
1034
		END
1035
		
1036
		CLOSE LISTROLE
1037
		DEALLOCATE LISTROLE
1038
		--- BAT DAU CAP NHAT AUTH_STATUS ='U' NEU BAM GUI PHE DUYET
1039
		IF(@p_RECORD_STATUS ='U')
1040
		BEGIN
1041
			UPDATE TR_PO_MASTER SET AUTH_STATUS ='U' WHERE PO_ID =@p_PO_ID
1042
		END
1043
COMMIT TRANSACTION
1044
IF(@p_RECORD_STATUS ='U')
1045
BEGIN
1046
	-- INSERT VAO LOG
1047
	INSERT INTO dbo.PL_PROCESS
1048
	(
1049
						REQ_ID,
1050
						PROCESS_ID,
1051
						CHECKER_ID,
1052
						APPROVE_DT,
1053
						PROCESS_DESC,NOTES
1054
					)
1055
					VALUES
1056
					(   @p_PO_ID,        -- REQ_ID - varchar(15)
1057
						'SEND',        -- PROCESS_ID - varchar(10)
1058
						@p_MAKER_ID,        -- CHECKER_ID - varchar(15)
1059
						GETDATE(), -- APPROVE_DT - datetime
1060
					   N'Nhân viên gửi phê duyệt phiếu thành công' ,N'Gửi phê duyệt')
1061
	SELECT '2' as Result, @p_PO_ID  PO_ID, N'PO số: '+ @p_PO_CODE +N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp có thẩm quyền phê duyệt' ErrorDesc
1062
	RETURN '2'
1063
	
1064
END
1065
ELSE
1066
BEGIN
1067
	SELECT '0' as Result, @p_PO_ID  PO_ID, N'PO số: '+ @p_PO_CODE +N' đã được cập nhật dữ liệu thành công. Bạn có thể bấm gửi phê duyệt' ErrorDesc
1068
	RETURN '0'
1069
END
1070
ABORT:
1071
BEGIN
1072
		CLOSE AssetDetail
1073
		DEALLOCATE AssetDetail
1074
		CLOSE PaymentDetail
1075
		DEALLOCATE PaymentDetail
1076
		CLOSE LISTROLE
1077
		DEALLOCATE LISTROLE
1078
		ROLLBACK TRANSACTION
1079
		SELECT '-1' AS RESULT
1080
		RETURN '-1'
1081
End
1082
¿
1083
ALTER PROCEDURE [dbo].[TR_PO_MASTER_Ins]
1084
@P_PO_TYPE INT = NULL,
1085
@p_PO_CODE	varchar(15)  = NULL,
1086
@p_PO_NAME	nvarchar(200)  = NULL,
1087
@p_CONTRACT_ID	varchar(15)  = NULL,
1088
@p_SUP_ID	varchar(15)  = NULL,
1089
@p_SUP_NAME	nvarchar(200)  = NULL,
1090
@p_SUP_ADDR	nvarchar(200)  = NULL,
1091
@p_INPUT_DT	VARCHAR(20) = NULL,
1092
@p_PAYMENT_DT	VARCHAR(20) = NULL,
1093
@p_TOTAL_AMT	decimal(18)  = NULL,
1094
@p_REQ_DOC_ID	varchar(15)  = NULL,
1095
@p_DELIVERY_DT	VARCHAR(20) = NULL,
1096
@p_PAYAPP_DT	VARCHAR(20) = NULL,
1097
@p_NOTES	nvarchar(1000)  = NULL,
1098
@p_RECORD_STATUS	varchar(1)  = '1',
1099
@p_MAKER_ID	varchar(15)  = NULL,
1100
@p_CREATE_DT	VARCHAR(20) = NULL,
1101
@p_AUTH_STATUS	varchar(50)  = 'U',
1102
@p_CHECKER_ID	varchar(15)  = NULL,
1103
@p_APPROVE_DT	VARCHAR(20) = 'U',
1104
@p_TR_REQ_ID VARCHAR(20) = NULL,
1105
@p_TR_REQ_CODE VARCHAR(20)= NULL,
1106
@P_LISTASSET XML = NULL,
1107
@P_LISTPAYMENT XML = NULL,
1108
@P_LISTROLE XML = NULL,
1109
@p_BRANCH_ID varchar(15) = NULL
1110
AS
1111
	--IF EXISTS(SELECT * FROM TR_PO_MASTER WHERE [PO_CODE] = @p_PO_CODE)
1112
	--BEGIN
1113
	--	SELECT ErrorCode Result, '' PO_ID, '' PO_CODE, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'PO-00002'
1114
	--	RETURN '0'
1115
	--END
1116
	DECLARE @sErrorCode VARCHAR(20)
1117
	IF (@p_SUP_ID IS NOT NULL AND @p_SUP_ID <> '')
1118
	BEGIN
1119
		IF NOT EXISTS(SELECT * FROM CM_SUPPLIER A WHERE A.SUP_ID = @p_SUP_ID)
1120
		BEGIN
1121
			SET @sErrorCode = 'CM-00001'
1122
		END
1123
	END
1124
		
1125
	IF 	@sErrorCode <> ''
1126
	BEGIN
1127
		SELECT ErrorCode Result, ''  PO_ID, ''PO_CODE, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @sErrorCode
1128
		RETURN '0'
1129
	END
1130

    
1131
	Declare @hdoc INT
1132
	Exec sp_xml_preparedocument @hdoc Output,@P_LISTASSET
1133
	DECLARE AssetDetail CURSOR FOR
1134
	SELECT *
1135
	FROM OPENXML(@hDoc,'/Root/AssetDetail',2)
1136
	WITH 
1137
	(
1138
		PLAN_ID	varchar(15)  ,
1139
		TRADE_ID	varchar(15)  ,
1140
		GOODS_ID	varchar(15)  ,
1141
		[DESCRIPTION] nvarchar(500),
1142
		UNIT_ID	varchar(15)  ,
1143
		QUANTITY	decimal(18)  ,
1144
		PRICE	decimal(18)  ,
1145
		TOTAL_AMT	decimal(18),
1146
		IS_DELIVERY	varchar(1) ,
1147
		DELIVERY_DT	VARCHAR(20),
1148
		PAYMENT_STATUS	varchar(4),
1149
		AMOUNT_PAID	decimal(18)  ,
1150
		PAID_DT	VARCHAR(20) ,
1151
		INVOICENO	varchar(1000),
1152
		NOTES	nvarchar(1000),
1153
		RECEIVE_BRANCH	varchar(15),
1154
		RECEIVE_ADDR	nvarchar(1000),
1155
		RECEIVE_PERSON	nvarchar(500),
1156
		RECEIVE_TEL	varchar(100),
1157
		EXP_DELIVERY_DT varchar(20),
1158
		GOODS_NAME NVARCHAR(500),
1159
		INVOICE_DT	VARCHAR(20),
1160
		--THIEUVQ 100415 THEM LOAI HANG HOA THUC TE
1161
		GOODSTYPE_REAL	VARCHAR(15),
1162
		GOODSTYPE_REAL_NAME	VARCHAR(15),
1163
		--THIEUVQ 13092016 THEM VAT, CONTRACT_DT
1164
		VAT DECIMAL(18,2),
1165
		PRICE_VAT DECIMAL(18,0),
1166
		CONTRACT_DT VARCHAR(15)
1167
	)
1168
	OPEN AssetDetail
1169

    
1170
	Exec sp_xml_preparedocument @hdoc Output,@P_LISTPAYMENT
1171
	DECLARE PaymentDetail CURSOR FOR
1172
	SELECT *
1173
	FROM OPENXML(@hDoc,'/Root/PaymentDetail',2)
1174
	WITH 
1175
	(
1176
		PAY_PHASE	varchar(15),
1177
		EXPECTED_DT	VARCHAR(20),
1178
		[PERCENT]	decimal(18),
1179
		[AMOUNT]	decimal(18),
1180
		NOTES	nvarchar(1000)
1181
	)
1182
	OPEN PaymentDetail
1183
	PRINT 'PASS KHOI TAO'
1184

    
1185
	--Nhom user gui mail (DAO EDIT)
1186
	Exec sp_xml_preparedocument @hdoc Output,@P_LISTROLE
1187
	DECLARE LISTROLE CURSOR FOR
1188
	SELECT *
1189
	FROM OPENXML(@hDoc,'/Root/LISTROLE',2)
1190
	WITH 
1191
	(
1192
		NOTIFI_ID	VARCHAR(15),
1193
		TL_NAME	varchar(15),
1194
		EDITOR_DT VARCHAR(20),
1195
		EDITOR_ID VARCHAR(15),
1196
		NOTES nvarchar(1000)
1197
	)
1198
	OPEN LISTROLE
1199
BEGIN TRANSACTION
1200
		--- 21052020 KIEM TRA XEM NEU PYCMS DA TON TAI HAY CHUA
1201
		IF((SELECT COUNT(*) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_TR_REQ_ID)=1)
1202
		BEGIN
1203
				IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE REQ_DOC_ID =@p_TR_REQ_ID AND AUTH_STATUS IN ('E','U','A')))
1204
				BEGIN
1205
					ROLLBACK TRANSACTION
1206
					SELECT '-1' Result, '' AS PO_ID, N'Phiếu yêu cầu mua sắm số :'+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_TR_REQ_ID)+N' đã được link tới PO có số: '+(SELECT TOP 1 PO_CODE FROM TR_PO_MASTER WHERE REQ_DOC_ID =@p_TR_REQ_ID) AS ErrorDesc 
1207
					RETURN '-1'
1208
				END
1209
		END
1210
		----
1211
		--insert master
1212
		IF @p_DELIVERY_DT = ''
1213
			SET @p_DELIVERY_DT = NULL
1214
		IF @p_PAYAPP_DT	= ''
1215
			SET @p_PAYAPP_DT = NULL
1216
		
1217
		DECLARE @l_PO_ID VARCHAR(15)
1218
		EXEC SYS_CodeMasters_Gen 'TR_PO_MASTER', @l_PO_ID out
1219
		IF @l_PO_ID='' OR @l_PO_ID IS NULL GOTO ABORT
1220

    
1221
		--TU PHAT SINH SO PO
1222
		DECLARE @ldate INT = (SELECT YEAR(GETDATE()))
1223
		EXEC [dbo].[TR_PO_MASTER_NO_Gen] @p_BRANCH_ID, @ldate, @p_PO_CODE out
1224
		IF @p_PO_CODE='' OR @p_PO_CODE IS NULL GOTO ABORT
1225

    
1226
		INSERT INTO TR_PO_MASTER([PO_TYPE],[PO_ID],[PO_CODE],[PO_NAME],[CONTRACT_ID],[SUP_ID],[SUP_NAME],[SUP_ADDR],[INPUT_DT],[PAYMENT_DT],[TOTAL_AMT],[REQ_DOC_ID],[DELIVERY_DT],[PAYAPP_DT],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT], BRANCH_ID)
1227
		VALUES(@P_PO_TYPE,@l_PO_ID ,@p_PO_CODE ,@p_PO_NAME ,@p_CONTRACT_ID ,@p_SUP_ID ,@p_SUP_NAME ,@p_SUP_ADDR ,CONVERT(DATETIME, @p_INPUT_DT, 103) ,CONVERT(DATETIME, @p_PAYMENT_DT, 103) ,@p_TOTAL_AMT ,@p_TR_REQ_ID ,CONVERT(DATETIME, @p_DELIVERY_DT, 103) ,CONVERT(DATETIME, @p_PAYAPP_DT, 103) ,@p_NOTES ,'1' ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103),@p_BRANCH_ID )
1228
		IF @@Error <> 0 GOTO ABORT
1229
		PRINT 'INSERT MASTER SUCCESS'
1230
		INSERT INTO dbo.TR_PO_MASTER_TEMP
1231
		(
1232
		    PO_ID,
1233
		    TR_REQ_ID,
1234
		    TR_REQ_CODE
1235
		)
1236
		VALUES
1237
		(   @l_PO_ID, -- PO_ID - varchar(15)
1238
		    @p_TR_REQ_ID, -- TR_REQ_ID - varchar(20)
1239
		    @p_TR_REQ_CODE  -- TR_REQ_CODE - varchar(20)
1240
		    )
1241
	
1242
		--insert asset detail tương đương như NỘI DUNG trong bảng contract detail
1243
		Declare 
1244
		@PLAN_ID	varchar(15),
1245
		@TRADE_ID	varchar(15),
1246
		@GOODS_ID	varchar(15),
1247
		@DESCRIPTION nvarchar(500),
1248
		@UNIT_ID	varchar(15),
1249
		@QUANTITY	decimal(18),
1250
		@PRICE	decimal(18),
1251
		@TOTAL_AMT	decimal(18),
1252
		@IS_DELIVERY	varchar(1),
1253
		@DELIVERY_DT	VARCHAR(20),
1254
		@PAYMENT_STATUS	varchar(4),
1255
		@AMOUNT_PAID	decimal(18),
1256
		@PAID_DT	VARCHAR(20),
1257
		@INVOICENO	varchar(20),
1258
		@NOTES	nvarchar(1000),
1259
		@PO_ID	varchar(15)  = NULL,
1260
		@PAY_PHASE	VARCHAR(20) = NULL,
1261
		@EXPECTED_DT	VARCHAR(20) = NULL,
1262
		@PERCENT	decimal(18)  = NULL,
1263
		@AMOUNT	decimal(18)  = NULL,
1264
		@RECEIVE_BRANCH	varchar(15)=NULL,
1265
		@RECEIVE_ADDR	nvarchar(1000)=NULL,
1266
		@RECEIVE_PERSON	nvarchar(500)=NULL,
1267
		@RECEIVE_TEL	varchar(100)=NULL,
1268
		@EXP_DELIVERY_DT varchar(20) = NULL,
1269
		@GOODS_NAME NVARCHAR(500) = NULL,
1270
		@INVOICE_DT	VARCHAR(20),
1271
		@GOODSTYPE_REAL	VARCHAR(15) = NULL,
1272
		@GOODSTYPE_REAL_NAME	VARCHAR(15) = NULL,
1273
		@VAT DECIMAL(18,2),
1274
		@PRICE_VAT DECIMAL(18,0),
1275
		@CONTRACT_DT VARCHAR(15),
1276
		--DAO MOI THEM
1277
		@NOTIFI_ID VARCHAR(15),
1278
		@TL_NAME VARCHAR(15),
1279
		@EDITOR_DT VARCHAR(20),
1280
		@EDITOR_ID VARCHAR(15),
1281
		@NOTES_ROLE nvarchar(1000)
1282

    
1283
		DECLARE @l_GOODSTYPE_ID VARCHAR(15)
1284

    
1285
		FETCH NEXT FROM AssetDetail INTO @PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
1286
		@PRICE,@TOTAL_AMT,@IS_DELIVERY,@DELIVERY_DT,@PAYMENT_STATUS,@AMOUNT_PAID,@PAID_DT,
1287
		@INVOICENO,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@EXP_DELIVERY_DT,@GOODS_NAME,@INVOICE_DT,
1288
		@GOODSTYPE_REAL,@GOODSTYPE_REAL_NAME,@VAT,@PRICE_VAT,@CONTRACT_DT
1289
		WHILE @@FETCH_STATUS = 0	
1290
		BEGIN
1291
			--if( NOT EXISTS (SELECT * FROM PL_MASTER A WHERE A.PLAN_ID = @PLAN_ID))
1292
			--BEGIN
1293
			--	SELECT ErrorCode Result, ''  PO_ID, '' PO_CODE, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'TR-00002'
1294
			--	GOTO ABORT
1295
			--END
1296
			DECLARE @l_PD_ID VARCHAR(15)
1297
			EXEC SYS_CodeMasters_Gen 'TR_PO_DETAIL', @l_PD_ID out
1298
			IF @l_PD_ID='' OR @l_PD_ID IS NULL GOTO ABORT
1299
			--NEU PO_TYPE = 0 TRONG KE HOACH SẼ TIEN HANH TRỪ SỐ HÀNG HÓA TRONG KẾ HOẠCH
1300
			--NEU HOP ĐỒNG KHAC NULL THÌ SẼ TRỪ SỐ LƯỢNG ỨNG VỚI SẢN PHẦM TRONG HỢP ĐỒNG
1301
			
1302
			/***THIEUVQ KHI DUYET MOI TRU TREN KE HOACH****/
1303
			--IF(@P_PO_TYPE = 0)
1304
			--BEGIN
1305
			--	UPDATE PL_TRADEDETAIL SET [QUANTITY_EXE] = @QUANTITY WHERE GOODS_ID = @GOODS_ID
1306
			--	IF @@ERROR <> 0 GOTO ABORT
1307
			--	-- CAP NHAP GIA TRI DA THUC HIEN TRONG PL_MASTER
1308
			--END
1309

    
1310
			/***THIEUVQ THEM KIEM TRA VA LUU THONG TIN LOAI HANG HOA THUC TE***/
1311
			--BEGIN
1312
			--CHUA CO LOAI HANG HOA THI THEM MOI
1313
			IF @GOODSTYPE_REAL IS NULL OR @GOODSTYPE_REAL = ''
1314
			BEGIN
1315
				--NEU TON TAI THI LAY RA ID
1316
				SET @GOODSTYPE_REAL = (SELECT TOP 1 GD_RETYPE_ID FROM CM_GOODSTYPE_REAL WHERE [TYPE_NAME] = @GOODSTYPE_REAL_NAME)
1317
				--NEU CHUA CO THI THEM MOI
1318
				IF @GOODSTYPE_REAL IS NULL OR @GOODSTYPE_REAL = ''
1319
				BEGIN
1320
					EXEC SYS_CodeMasters_Gen 'CM_GOODSTYPE_REAL', @l_GOODSTYPE_ID OUT
1321
					IF @l_GOODSTYPE_ID='' OR @l_GOODSTYPE_ID IS NULL GOTO ABORT
1322

    
1323
					INSERT INTO CM_GOODSTYPE_REAL VALUES (@l_GOODSTYPE_ID, @l_GOODSTYPE_ID, @GOODSTYPE_REAL_NAME, '', '1',
1324
					@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),'A',@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103))
1325
					IF @@ERROR <> 0 GOTO ABORT
1326

    
1327
					SET @GOODSTYPE_REAL = @l_GOODSTYPE_ID
1328
				END
1329
			END			
1330
			--END
1331

    
1332
			IF(@DELIVERY_DT = '')
1333
				SET @DELIVERY_DT = NULL
1334
			IF(@PAID_DT = '')
1335
				SET @PAID_DT = NULL
1336
			IF(@INVOICE_DT = '')
1337
				SET @INVOICE_DT = NULL
1338
			IF @EXP_DELIVERY_DT = '' SET @EXP_DELIVERY_DT = NULL
1339

    
1340
			--IF(LEN(@p_CONTRACT_ID) <> 0)
1341
			--CAP NHAP SO HANG DA DUOC GOI BEN TRONG CONTRACT DETAIL
1342
			INSERT INTO TR_PO_DETAIL(PD_ID,PO_ID,PLAN_ID,TRADE_ID,GOODS_ID,[DESCRIPTION],UNIT_ID,
1343
		    QUANTITY,PRICE,TOTAL_AMT,IS_DELIVERY,DELIVERY_DT,PAYMENT_STATUS,AMOUNT_PAID,
1344
			PAID_DT,INVOICENO,NOTES, RECEIVE_BRANCH, RECEIVE_ADDR, RECEIVE_PERSON, RECEIVE_TEL,RECORD_STATUS,
1345
			MAKER_ID,CREATE_DT,AUTH_STATUS,CHECKER_ID,APPROVE_DT,EXP_DELIVERY_DT, GOODS_NAME,INVOICE_DT,GOODSTYPE_REAL,VAT,PRICE_VAT,CONTRACT_DT)
1346
			VALUES(@l_PD_ID,@l_PO_ID,@PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,
1347
			@QUANTITY,@PRICE,@TOTAL_AMT,@IS_DELIVERY,CONVERT(DATETIME, @DELIVERY_DT, 103),@PAYMENT_STATUS,@AMOUNT_PAID,
1348
			CONVERT(DATETIME, @PAID_DT, 103),@INVOICENO,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@p_RECORD_STATUS,
1349
			@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),@p_AUTH_STATUS,@p_CHECKER_ID,CONVERT(DATETIME, @p_APPROVE_DT, 103),CONVERT(DATETIME, @EXP_DELIVERY_DT, 103),
1350
			@GOODS_NAME,CONVERT(DATETIME, @INVOICE_DT, 103),@GOODSTYPE_REAL,@VAT,@PRICE_VAT,@CONTRACT_DT)
1351
			IF @@ERROR <> 0 GOTO ABORT1
1352
 
1353
		-- next Group_Id
1354
			FETCH NEXT FROM AssetDetail INTO @PLAN_ID,@TRADE_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
1355
			@PRICE,@TOTAL_AMT,@IS_DELIVERY,@DELIVERY_DT,@PAYMENT_STATUS,@AMOUNT_PAID,@PAID_DT,
1356
			@INVOICENO,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@EXP_DELIVERY_DT,@GOODS_NAME,@INVOICE_DT,
1357
			@GOODSTYPE_REAL,@GOODSTYPE_REAL_NAME,@VAT,@PRICE_VAT,@CONTRACT_DT
1358
		END
1359
		CLOSE AssetDetail
1360
		DEALLOCATE AssetDetail
1361
		--insert payment detail
1362

    
1363

    
1364
		FETCH NEXT FROM PaymentDetail INTO @PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@NOTES
1365

    
1366
		WHILE @@FETCH_STATUS = 0
1367
		BEGIN
1368
			DECLARE @l_PAY_ID VARCHAR(15)
1369
			EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @l_PAY_ID out
1370
			IF @l_PAY_ID='' OR @l_PAY_ID IS NULL GOTO ABORT
1371

    
1372
			IF(@EXPECTED_DT = '')
1373
				SET @EXPECTED_DT = NULL
1374
			
1375
			INSERT INTO TR_PO_PAYMENT(PAY_ID,PO_ID,PAY_PHASE,EXP_DT,[PERCENT],AMOUNT,NOTES,RECORD_STATUS,MAKER_ID,CREATE_DT,AUTH_STATUS,CHECKER_ID,APPROVE_DT)
1376
			VALUES(@l_PAY_ID,@l_PO_ID,@PAY_PHASE,CONVERT(DATETIME, @EXPECTED_DT, 103),
1377
			@PERCENT,@AMOUNT,@NOTES,@p_RECORD_STATUS,@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),@p_AUTH_STATUS,@p_CHECKER_ID,CONVERT(DATETIME, @p_APPROVE_DT, 103))
1378
			IF @@ERROR <> 0 GOTO ABORT2
1379

    
1380
			FETCH NEXT FROM PaymentDetail INTO @PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@NOTES
1381
		END
1382
		CLOSE PaymentDetail
1383
		DEALLOCATE PaymentDetail
1384

    
1385
	   ---INSERT NHOM QUYEN USER THONG BAO (DAO-EDIT)
1386
	   FETCH NEXT FROM LISTROLE INTO
1387
		@NOTIFI_ID,
1388
		@TL_NAME,
1389
		@EDITOR_DT,
1390
		@EDITOR_ID,
1391
		@NOTES_ROLE
1392
		WHILE @@FETCH_STATUS = 0
1393
		BEGIN
1394
			
1395
			EXEC SYS_CodeMasters_Gen 'TL_ROLE_NOTIFICATION', @NOTIFI_ID out
1396
			IF @NOTIFI_ID='' OR @NOTIFI_ID IS NULL GOTO ABORT
1397

    
1398
			INSERT INTO [dbo].[TL_ROLE_NOTIFICATION]
1399
           ([NOTIFI_ID]
1400
           ,[NOTIFI_CODE]
1401
           ,[NOTIFI_NAME]
1402
           ,[TYPE]
1403
           ,[PO_ID]
1404
           ,[TL_NAME]
1405
           ,[BRANCH_ID]
1406
           ,[RECORD_STATUS]
1407
           ,[AUTH_STATUS]
1408
           ,[EDITOR_ID]
1409
           ,[EDIT_DT]
1410
           ,[NOTES]
1411
		  ,[MAKER_ID]
1412
		  ,[CREATE_DT])
1413
			 VALUES
1414
           (@NOTIFI_ID
1415
           ,''
1416
           ,''
1417
           ,'PO'
1418
           ,@l_PO_ID
1419
           ,@TL_NAME
1420
           ,@p_BRANCH_ID
1421
           ,'1'
1422
           ,'U'
1423
           ,@EDITOR_ID
1424
           ,CONVERT(DATETIME, @EDITOR_DT, 103)
1425
           ,@NOTES_ROLE
1426
		   ,@p_MAKER_ID
1427
		   ,CONVERT(DATETIME, @p_CREATE_DT, 103))
1428
			
1429
			IF @@ERROR <> 0 GOTO ABORT
1430
			 FETCH NEXT FROM LISTROLE INTO
1431
			@NOTIFI_ID,
1432
			@TL_NAME,
1433
			@EDITOR_DT,
1434
			@EDITOR_ID,
1435
			@NOTES_ROLE
1436
		END
1437
		
1438
		CLOSE LISTROLE
1439
		DEALLOCATE LISTROLE
1440

    
1441
COMMIT TRANSACTION
1442
SELECT '0' as Result, @l_PO_ID  PO_ID,@p_PO_CODE PO_CODE, N'Bản nháp số: '+@p_PO_CODE+N' được khởi tạo thành công. Bạn có thể bấm gửi phê duyệt!' ErrorDesc
1443
RETURN '0'
1444
ABORT:
1445
BEGIN
1446
		ROLLBACK TRANSACTION
1447
		SELECT '-1' AS RESULT
1448
		RETURN '-1'
1449
End
1450
ABORT1:
1451
BEGIN
1452
		CLOSE AssetDetail
1453
		DEALLOCATE AssetDetail
1454
		ROLLBACK TRANSACTION
1455
		SELECT '-1' AS RESULT
1456
		RETURN '-1'
1457
End
1458
ABORT2:
1459
BEGIN
1460
		CLOSE AssetDetail
1461
		DEALLOCATE AssetDetail
1462
		CLOSE PaymentDetail
1463
		DEALLOCATE PaymentDetail
1464
		ROLLBACK TRANSACTION
1465
		SELECT '-1' AS RESULT
1466
		RETURN '-1'
1467
End