Project

General

Profile

2.9.CAR_DRIVER_UPD.txt

Luc Tran Van, 06/29/2023 04:27 PM

 
1
ALTER PROCEDURE [dbo].[CAR_DRIVE_Upd]
2
@p_CAR_DR_ID VARCHAR(15) = NULL,
3
@p_CAR_ID	varchar(15)  = NULL,
4
@p_ASSET_ID	varchar(15)  = NULL,
5
@p_ASSET_NAME	nvarchar(200)  = NULL,
6
@p_OLD_INDEX_NUMBER	decimal(18)  = NULL,
7
@p_NEW_INDEX_NUMBER	decimal(18)  = NULL,
8
@p_INDEX_NUMBER	decimal(18)  = NULL,
9
@p_POWER_RATE	decimal(18,2)  = NULL,
10
@p_POWER_RATE_INDEX	decimal(18,2)  = NULL,
11
@p_CURR_POWER_RATE	decimal(18,2)  = NULL,
12
@p_INPUT_DT	VARCHAR(20) = NULL,
13
@p_ISLEAF	varchar(1)  = NULL,
14
@p_PARENT_ID	varchar(15)  = NULL,
15
@p_NOTES	nvarchar(1000)  = NULL,
16
@p_RECORD_STATUS	varchar(1)  = NULL,
17
@p_MAKER_ID	varchar(12)  = NULL,
18
@p_CREATE_DT	VARCHAR(20) = NULL,
19
@p_AUTH_STATUS	varchar(50)  = NULL,
20
@p_CHECKER_ID	varchar(12)  = NULL,
21
@p_APPROVE_DT	VARCHAR(20) = NULL,
22
@p_DR_ROUTE nvarchar(200) = NULL, --vietpq hieu chinh URD 09/12/2019
23
-- doanptt 14/02/2022
24
@p_REQ_PAY_ID VARCHAR(15) = NULL,
25
@p_NEW_FUEL_NUMBER	DECIMAL(18,2)  = NULL, --PhongNT 13/05/2022 Bổ sung nhiên liệu
26
@p_OLD_FUEL_NUMBER	DECIMAL(18,2) = NULL,
27
@p_REQ_CAR_ID		VARCHAR(15) =NULL, -- PYC XE 
28
@p_DRIVE_DETAIL XML = NULL
29
AS
30
	
31
--	DECLARE @ERRORSYS NVARCHAR(15)
32
--	
33
--	IF( @ERRORSYS <> '' )
34
--	BEGIN
35
--		SELECT ErrorCode Result, '' CAR_DR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
36
--		RETURN '0'
37
--	END
38

    
39
--  IF ( EXISTS ( SELECT 1 FROM CAR_DRIVE WHERE REQ_CAR_ID = @p_REQ_CAR_ID AND CAR_DR_ID<>@p_CAR_DR_ID))
40
--	BEGIN
41
--	  	SELECT '-1' Result, '' CAR_DR_ID, N'Sửa thông tin phiếu vận hành thất bại! Phiếu yêu cầu xe đã tồn tại trong thông tin vận hành xe' ErrorDesc 
42
--		  RETURN '-1'
43
--	END
44
   DECLARE @Note NVARCHAR(max)
45
    SELECT @Note=N'Chỉ số km cũ thay đổi từ: '+cast(cd.OLD_INDEX_NUMBER AS varchar(50))+' - '+cast(@p_OLD_INDEX_NUMBER AS varchar(50))+CHAR(10)+
46
                 N'Chỉ số km mới thay đổi từ: '+cast(cd.NEW_INDEX_NUMBER AS varchar(50))+' - '+cast(@p_NEW_INDEX_NUMBER AS varchar(50))+CHAR(10)+
47
                 N'Chỉ số nhiên liệu mới thay đổi từ: '+cast(cd.NEW_FUEL_NUMBER AS varchar(50))+' - '+cast(@p_NEW_FUEL_NUMBER AS varchar(50))+CHAR(10)
48
    FROM CAR_DRIVE cd WHERE cd.CAR_DR_ID=@P_CAR_DR_ID
49

    
50
	Declare @hdoc INT
51
	Exec sp_xml_preparedocument @hdoc Output,@p_DRIVE_DETAIL
52
	DECLARE DriveDetail CURSOR FOR
53
	SELECT *
54
	FROM OPENXML(@hDoc,'/Root/DriveDetail',2)
55
	WITH 
56
	(
57
		DRDT_ID VARCHAR(15),
58
		INVOICE_NO nvarchar(100),
59
		INVOICE_DT VARCHAR(20),
60
		INVOICE_AMT DECIMAL(18,0),
61
		CAR_DR_TYPE nvarchar(200), --vietpq hieu chinh URD 09/12/2019
62
		NOTES nvarchar(MAX) --vietpq hieu chinh URD 09/12/2019
63
	)
64
	OPEN DriveDetail
65
BEGIN TRANSACTION
66
	---- LUCTV 26062023_SECRETKEY: KIỂM TRA NẾU CHƯA KHAI BÁO THÔNG TIN VẬN HÀNH XE THÌ BẮT BUỘC PHẢI KHAI BÁO TRƯỚC KHI LÀM PYC XE
67
		IF(NOT EXISTS(SELECT * FROM CAR_DRIVE WHERE CAR_ID =@p_CAR_ID AND ISNULL(ISLEAF,'') ='Y' )) 
68
		BEGIN
69
			ROLLBACK TRANSACTION
70
			SELECT '-1' Result, '' REQ_ID, N'Cập nhật phiếu vận hành xe thất bại. Xe chưa được khai báo thông tin số km tồn đầu, số nhiên liệu tồn đầu. Vui lòng tra cứu thông tin xe để kiểm tra thông tin' ErrorDesc
71
			RETURN '-1'
72
		END
73
		---- LUCTV 29062023_SECRETKEY:CHỈ CHO PHÉP PHÒNG HÀNH CHÍNH HỘI SỞ ĐƯỢC PHÉP ĐIỀU CHỈNH SỐ XĂNG ĐẦU KỲ, SỐ KM ĐẦU KỲ
74
		DECLARE @l_FUEL_INDEX_FROM DECIMAL(18,2), @l_KM_INDEX_FROM DECIMAL(18,2)
75
		SET @l_FUEL_INDEX_FROM = (SELECT TOP 1 ISNULL(NEW_FUEL_NUMBER,0) FROM CAR_DRIVE WHERE CAR_ID =@p_CAR_ID AND ISNULL(ISLEAF,'') ='Y' AND RECORD_STATUS ='1')
76
		SET @l_KM_INDEX_FROM = (SELECT TOP 1 ISNULL(NEW_INDEX_NUMBER,0) FROM CAR_DRIVE WHERE CAR_ID =@p_CAR_ID AND ISNULL(ISLEAF,'') ='Y' AND RECORD_STATUS='1')
77
		IF(ISNULL(@l_FUEL_INDEX_FROM,0) <> @p_OLD_FUEL_NUMBER OR ISNULL(@l_KM_INDEX_FROM,0) <> @p_OLD_INDEX_NUMBER)
78
		BEGIN
79
			IF(NOT EXISTS (SELECT * FROM TL_USER WHERE TLNANME=@p_MAKER_ID AND SECUR_CODE IN (SELECT DEP_ID FROM CM_DEPARTMENT WHERE DEP_CODE ='0690604')))
80
			BEGIN
81
				ROLLBACK TRANSACTION
82
				SELECT '-1' Result, '' REQ_ID, N'Cập nhật phiếu vận hành xe thất bại. Bạn không được phép điều chỉnh thông tin chỉ số nhiên liệu cũ, chỉ số km cũ. Chức năng này chỉ dành cho nhóm người dùng Phòng Hành Chính - Hội Sở' ErrorDesc
83
				RETURN '-1'
84
			END
85
		END
86
		--- END
87
		DECLARE @l_CAR_DR_ID VARCHAR(15)
88
		
89
		IF @p_INPUT_DT = '' SET @p_INPUT_DT = NULL
90
		IF @p_CREATE_DT = '' SET @p_CREATE_DT = NULL
91
		IF @p_APPROVE_DT = '' SET @p_APPROVE_DT = NULL
92
		---- LUCTV 28062023_SECRETKEY KHI CAP NHAT THONG TIN PHIEU VAN HANH CHỈ LƯU LOG, KHÔNG CẦN UPDATE MAKKER_ID
93
		UPDATE CAR_DRIVE SET [CAR_ID] = @p_CAR_ID,[ASSET_ID] = @p_ASSET_ID,[ASSET_NAME] = @p_ASSET_NAME,
94
		[OLD_INDEX_NUMBER] = @p_OLD_INDEX_NUMBER,[NEW_INDEX_NUMBER] = @p_NEW_INDEX_NUMBER,
95
		[INDEX_NUMBER] = @p_INDEX_NUMBER,[POWER_RATE] = @p_POWER_RATE,[POWER_RATE_INDEX] = @p_POWER_RATE_INDEX,
96
		[CURR_POWER_RATE] = @p_CURR_POWER_RATE,[DR_ROUTE] = @p_DR_ROUTE,[INPUT_DT] = CONVERT(DATETIME, @p_INPUT_DT, 103), 
97
		[ISLEAF] = @p_ISLEAF,[PARENT_ID] = @p_PARENT_ID,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,
98
		[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),
99
		[AUTH_STATUS] = @p_AUTH_STATUS,[CHECKER_ID] = @p_CHECKER_ID,
100
		[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),[REQ_PAY_ID] = @p_REQ_PAY_ID,[REQ_CAR_ID]=@p_REQ_CAR_ID,[OLD_FUEL_NUMBER]=@p_OLD_FUEL_NUMBER,[NEW_FUEL_NUMBER]=@p_NEW_FUEL_NUMBER
101
		WHERE  CAR_DR_ID = @p_CAR_DR_ID
102
		IF @@Error <> 0 GOTO ABORT
103

    
104
		--INSERT CAR DRIVE DETAIL
105
		DECLARE
106
		@DRDT_ID VARCHAR(15),
107
		@INVOICE_NO nvarchar(100),
108
		@INVOICE_DT VARCHAR(20),
109
		@INVOICE_AMT DECIMAL(18,0),
110
		@CAR_DR_TYPE nvarchar(200), --vietpq hieu chinh URD 09/12/2019
111
		@NOTES nvarchar(MAX) --vietpq hieu chinh URD 09/12/2019
112

    
113
		DELETE FROM CAR_DRIVE_DT WHERE CAR_DR_ID = @P_CAR_DR_ID
114
		PRINT 'INSERT MASTER SUCCESS'
115
		FETCH NEXT FROM DriveDetail INTO @DRDT_ID,@INVOICE_NO,@INVOICE_DT,@INVOICE_AMT, @CAR_DR_TYPE, @NOTES
116
		PRINT 'FETCH  FIRST ROW'
117
		
118
		WHILE @@FETCH_STATUS = 0
119
		BEGIN
120
			IF LEN (@DRDT_ID) = 0
121
			BEGIN
122
				EXEC SYS_CodeMasters_Gen 'CAR_DRIVE_DT', @DRDT_ID out
123
				IF @DRDT_ID='' OR @DRDT_ID IS NULL GOTO ABORT
124
			END
125
			IF @INVOICE_DT = '' SET @INVOICE_DT = NULL
126
			PRINT 'INSERT FIRST ROW'
127
			INSERT INTO CAR_DRIVE_DT
128
			VALUES(@DRDT_ID ,@P_CAR_DR_ID ,@INVOICE_NO,CONVERT(DATETIME,@INVOICE_DT,103),@INVOICE_AMT,@CAR_DR_TYPE,@NOTES)
129

    
130
			FETCH NEXT FROM DriveDetail INTO @DRDT_ID,@INVOICE_NO,@INVOICE_DT,@INVOICE_AMT, @CAR_DR_TYPE, @NOTES
131
		END
132
	
133
		CLOSE DriveDetail
134
		DEALLOCATE DriveDetail
135

    
136
    
137
    INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
138
  VALUES (@P_CAR_DR_ID, 'CAR_DIVE', @p_MAKER_ID, GETDATE(), @Note, N'Chỉnh sửa phiếu vận hành');
139

    
140
COMMIT TRANSACTION
141
SELECT '0' as Result, @p_CAR_DR_ID  CAR_DR_ID, '' ErrorDesc
142
RETURN '0'
143
ABORT:
144
BEGIN
145
		ROLLBACK TRANSACTION
146
		SELECT '-1' as Result, '' CAR_DR_ID, '' ErrorDesc
147
		RETURN '-1'
148
End
149

    
150

    
151