1
|
|
2
|
|
3
|
ALTER PROCEDURE [dbo].[BID_MASTER_Upd]
|
4
|
@p_BID_ID VARCHAR(15),
|
5
|
@p_BID_CODE varchar(50) = NULL,
|
6
|
@p_BID_YPE varchar(1) = NULL,
|
7
|
@p_PROJECT_ID varchar(15) = NULL,
|
8
|
@p_TERM_BID nvarchar(200) = NULL,
|
9
|
@p_FORM varchar(4) = NULL,
|
10
|
@p_INPUT_DT VARCHAR(20) = NULL,
|
11
|
@p_EXP_DT VARCHAR(20) = NULL,
|
12
|
@p_OPEN_DT VARCHAR(20) = NULL,
|
13
|
@p_BUDGET decimal(18) = NULL,
|
14
|
@p_TOTAL_AMT decimal(18) = NULL,
|
15
|
@p_GUARANTEE_AMT decimal(18) = NULL,
|
16
|
@p_GUARANTEE_PER decimal(18) = NULL,
|
17
|
@p_GUARANTEE_EXP VARCHAR(20) = NULL,
|
18
|
@p_NOTES nvarchar(1000) = NULL,
|
19
|
@p_RECORD_STATUS varchar(1) = NULL,
|
20
|
@p_MAKER_ID varchar(12) = NULL,
|
21
|
@p_CREATE_DT VARCHAR(20) = NULL,
|
22
|
@p_AUTH_STATUS varchar(50) = NULL,
|
23
|
@p_CHECKER_ID varchar(12) = NULL,
|
24
|
@p_APPROVE_DT VARCHAR(20) = NULL,
|
25
|
@p_BID_CATEGORY VARCHAR(15)=NULL,
|
26
|
@p_Contractor_Det XML = NULL
|
27
|
|
28
|
AS
|
29
|
Declare @hdoc INT
|
30
|
Exec sp_xml_preparedocument @hdoc Output,@p_Contractor_Det
|
31
|
DECLARE ContractorDetail CURSOR FOR
|
32
|
SELECT *
|
33
|
FROM OPENXML(@hDoc,'/Root/ContractorDetail',2)
|
34
|
WITH
|
35
|
(
|
36
|
ID VARCHAR(15),
|
37
|
SUP_ID varchar(15) ,
|
38
|
SEND_DT VARCHAR(20) ,
|
39
|
OFFERING_VALUE decimal(18),
|
40
|
FORM varchar(4),
|
41
|
EXP_DT VARCHAR(20),
|
42
|
BANK nvarchar(200),
|
43
|
VOUCHER varchar(20) ,
|
44
|
PROGRESS_TIME INT,
|
45
|
ISVALID varchar(1),
|
46
|
IS_BID_WIN varchar(1) ,
|
47
|
NOTES nvarchar(1000)
|
48
|
)
|
49
|
OPEN ContractorDetail
|
50
|
-- Put validation here
|
51
|
|
52
|
BEGIN TRANSACTION
|
53
|
----
|
54
|
--IF(@p_BID_CATEGORY IS NOT NULL AND @p_BID_CATEGORY <>'')
|
55
|
--BEGIN
|
56
|
|
57
|
IF(NOT EXISTS(SELECT BID_ID FROM dbo.BID_MASTER WHERE BID_ID=@p_BID_ID AND BID_CATEGORY =@p_BID_CATEGORY))
|
58
|
BEGIN
|
59
|
EXEC dbo.BID_CODE_GenKey 'BID_MASTER', @p_BID_CATEGORY, @p_BID_CODE OUTPUT
|
60
|
END
|
61
|
-- Kiem tra ma ke hoach co ton tai hay chua
|
62
|
IF EXISTS(SELECT * FROM BID_MASTER WHERE [BID_CODE]=@p_BID_CODE AND [BID_ID] != @p_BID_ID)
|
63
|
BEGIN
|
64
|
ROLLBACK TRANSACTION
|
65
|
SELECT ErrorCode Result, '' BID_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'BID-00001'
|
66
|
RETURN '0'
|
67
|
END
|
68
|
|
69
|
----
|
70
|
UPDATE BID_MASTER SET [BID_CODE] = @p_BID_CODE, [BID_TYPE] = @p_BID_YPE, [PROJECT_ID] = @p_PROJECT_ID,[TERM_BID] = @p_TERM_BID,[FORM] = @p_FORM,[INPUT_DT] = CONVERT(DATETIME, @p_INPUT_DT, 103),[EXP_DT] = CONVERT(DATETIME, @p_EXP_DT, 103),[OPEN_DT] = CONVERT(DATETIME, @p_OPEN_DT, 103),[BUDGET] = @p_BUDGET,[TOTAL_AMT] = @p_TOTAL_AMT,[GUARANTEE_AMT] = @p_GUARANTEE_AMT,[GUARANTEE_PER] = @p_GUARANTEE_PER,[GUARANTEE_EXP] = CONVERT(DATETIME, @p_GUARANTEE_EXP, 103),[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = @p_AUTH_STATUS,[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),BID_CATEGORY=@p_BID_CATEGORY
|
71
|
WHERE BID_ID= @p_BID_ID
|
72
|
IF @@Error <> 0 GOTO ABORT
|
73
|
DECLARE
|
74
|
@ID VARCHAR(15),
|
75
|
@SUP_ID varchar(15) ,
|
76
|
@SEND_DT VARCHAR(20) ,
|
77
|
@OFFERING_VALUE decimal(18),
|
78
|
@FORM varchar(4),
|
79
|
@EXP_DT VARCHAR(20),
|
80
|
@BANK nvarchar(200),
|
81
|
@VOUCHER varchar(20) ,
|
82
|
@ISVALID varchar(1),
|
83
|
@IS_BID_WIN varchar(1) ,
|
84
|
@PROGRESS_TIME INT,
|
85
|
@NOTES nvarchar(1000)
|
86
|
FETCH NEXT FROM ContractorDetail INTO @ID,@SUP_ID,@SEND_DT,@OFFERING_VALUE,@FORM,
|
87
|
@EXP_DT,@BANK,@VOUCHER,@PROGRESS_TIME,@ISVALID,@IS_BID_WIN,@NOTES
|
88
|
|
89
|
|
90
|
WHILE @@FETCH_STATUS = 0
|
91
|
BEGIN
|
92
|
IF(@ID IS NOT NULL AND @ID <>'')
|
93
|
BEGIN
|
94
|
UPDATE dbo.BID_CONTRACTOR_DT SET SUP_ID=@SUP_ID,OFFERING_VALUE=@OFFERING_VALUE,@SEND_DT=@SEND_DT,FORM=@FORM,EXP_DT=@EXP_DT,BANK=@BANK,
|
95
|
VOUCHER=@VOUCHER,PROGRESS_TIME=@PROGRESS_TIME,ISVALID=ISVALID,IS_BID_WIN=@IS_BID_WIN,NOTES=@NOTES WHERE ID=@ID
|
96
|
END
|
97
|
ELSE
|
98
|
BEGIN
|
99
|
|
100
|
EXEC SYS_CodeMasters_Gen 'BID_CONTRACTOR_DT', @ID out
|
101
|
IF @ID='' OR @ID IS NULL GOTO ABORT
|
102
|
|
103
|
|
104
|
IF @EXP_DT = '' SET @EXP_DT = NULL
|
105
|
|
106
|
INSERT INTO BID_CONTRACTOR_DT([ID],[SUP_ID],[BID_ID],[SEND_DT],[OFFERING_VALUE],[FORM],[EXP_DT],
|
107
|
[BANK],[VOUCHER],[ISVALID],[IS_BID_WIN],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],
|
108
|
[CHECKER_ID],[APPROVE_DT],[PROGRESS_TIME])
|
109
|
VALUES(@ID ,@SUP_ID ,@P_BID_ID ,CONVERT(DATETIME, @SEND_DT, 103) ,@OFFERING_VALUE ,@FORM,
|
110
|
CASE WHEN @EXP_DT IS NOT NULL AND @EXP_DT <> '' then CONVERT(DATETIME, @EXP_DT, 103) ELSE NULL END ,@BANK ,@VOUCHER ,@ISVALID,@IS_BID_WIN ,
|
111
|
@NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,
|
112
|
CONVERT(DATETIME, @p_APPROVE_DT, 103),@PROGRESS_TIME)
|
113
|
END
|
114
|
--IF @@ERROR <> 0 GOTO ABORT
|
115
|
FETCH NEXT FROM ContractorDetail INTO @ID,@SUP_ID,@SEND_DT,@OFFERING_VALUE,@FORM,
|
116
|
@EXP_DT,@BANK,@VOUCHER,@PROGRESS_TIME,@ISVALID,@IS_BID_WIN,@NOTES
|
117
|
END
|
118
|
|
119
|
CLOSE ContractorDetail
|
120
|
DEALLOCATE ContractorDetail
|
121
|
|
122
|
COMMIT TRANSACTION
|
123
|
SELECT '0' as Result, @P_BID_ID BID_ID, '' ErrorDesc
|
124
|
RETURN '0'
|
125
|
ABORT:
|
126
|
BEGIN
|
127
|
CLOSE ContractorDetail
|
128
|
DEALLOCATE ContractorDetail
|
129
|
ROLLBACK TRANSACTION
|
130
|
SELECT '-1' as Result, '' BID_ID, '' ErrorDesc
|
131
|
RETURN '-1'
|
132
|
End
|
133
|
|
134
|
|
135
|
|
136
|
|
137
|
|
138
|
|
139
|
|